Intent实现页面的跳转
来源:互联网 发布:上市公司高管薪酬数据 编辑:程序博客网 时间:2024/05/16 23:55
1.Intent(可以理解为信使(意图))------由Intent来协助完成Android各个组件之间的通讯。
1)startActivity(intent)----直接由一个页面来启动第二个页面
2)startActivityForResult(intent,requestCode)---有返回值的方式
onActivityResult(int requestCode,int resultCode,Intent data)----A接受B回传来的数据
setResult(resultCode,data)----B页面把数据回传给A
2.
第一种方式(无返回结果的跳转)
private Button btn;//private Context mContext;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn=(Button)findViewById(R.id.button); //mContext=this; btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(MainActivity.this,Second_Activity.class);//第一个参数上下文this(用类名.this),第二个参数目标文件 // Intent intent=new Intent(mContext,Second_Activity.class); //还有一种方法就是设置Context的全局变量 //从当前文件调到目标文件 MainActivity.this.startActivity(intent);//通过startActivity来执行这个意图。 } });}
第二种方式(有返回值的跳转)
mainActivity.java
package com.example.xuhai.test;import android.content.DialogInterface;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends AppCompatActivity { private Button btn; private Button btn2; private TextView tv; //private Context mContext; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn=(Button)findViewById(R.id.button); btn2=(Button)findViewById(R.id.button1); tv=(TextView)findViewById(R.id.textView); //mContext=this; btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(MainActivity.this,Second_Activity.class);//第一个参数上下文this(用类名.this),第二个参数目标文件 // Intent intent=new Intent(mContext,Second_Activity.class); //还有一种方法就是设置Context的全局变量 //从当前文件调到目标文件 MainActivity.this.startActivity(intent);//通过startActivity来执行这个意图。 } }); btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //通过startActivityForresult来实现 Intent intent =new Intent(MainActivity.this,third_Activity.class); //第一个是intent对象,第二个是请求的一个标示 startActivityForResult(intent,1); } }); } /*通过startActivityForresult跳转,接受返回数据的方法 *requestCode:请求的标识 * resultCode:第二个页面返回的标志 * data:第二个页面回传的数据 */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==1&&resultCode==2){ String content=data.getStringExtra("data"); tv.setText(content); } }}activity_main.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.example.xuhai.test.MainActivity" > <TextView android:text="Hello World!" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button1_name" android:id="@+id/button" android:layout_below="@+id/textView" android:layout_alignParentStart="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button2_name" android:id="@+id/button1" android:layout_below="@+id/button" android:layout_alignParentStart="true" /> <ImageButton android:layout_width="match_parent" android:layout_height="50dp" android:id="@+id/imageButton" android:layout_below="@+id/button1" android:layout_alignParentStart="true" android:src="@android:drawable/ic_delete" /></RelativeLayout>third_activity.java
package com.example.xuhai.test;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;/** * Created by xuhai on 2016/8/3. */public class third_Activity extends Activity { // @Override private Button bt; private String content="你好"; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.third_view); /* *第二个页面回传数据 * 会传到第一个页面的实际上是一个intent对象 */ bt=(Button)findViewById(R.id.button7); bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent data =new Intent(); data.putExtra("data",content); setResult(2,data);//通过请求码和结果码来判断是哪个页面给第一个页面请求数据 finish();//结束当前页面 } }); }}third_view.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="点击我回传数据" android:id="@+id/button7" /></LinearLayout>实现结果:
2.
0 0
- Intent实现页面的跳转
- Intent实现页面跳转
- Intent实现页面跳转
- Intent实现页面跳转
- Intent实现页面跳转
- Intent实现页面的跳转和返回
- Intent 实现页面之间的跳转
- Android学习-Intent实现页面的跳转
- 使用Intent实现页面跳转
- 使用Intent实现页面跳转
- 使用Intent实现页面跳转
- 使用Intent实现页面跳转
- 使用Intent实现页面跳转
- Intent 跳转的实现
- Android Intent机制实现页面跳转的用法
- Android_实现页面跳转(intent的应用)及进阶
- 跳转,Intent跳转页面
- Android学习之Intent实现页面跳转
- ceph存储 ceph源码调试中admin_socket接口
- 华为 删数
- UNIX环境高级编程——学习路线图
- 通过cmd后去keystore的SHA1指纹
- Dex文件格式详解
- Intent实现页面的跳转
- Android6.0权限管理被忽略问题
- c# Chart设置样式
- 用JS获取地址栏参数的方法
- 算术表达式的转换
- 读书笔记(二)_VC++深入详解&Android应用开发教程
- Linux学习(一)
- 富文本编辑器 Kindeditor 的使用和 常见错误
- STM32F107高级定时器TIM1使用 增量编码器接口配置