Intent 实现页面之间的跳转
2016-04-07 00:13
423 查看
Intent 可以理解为信使(意图)
由Intent来协助完成Android各个组件之间的通讯
实现跳转的两种方式
1.startActivity(intent);
2.startActivityForResult(intent,requestCode);
onActivityResult(int requestCode,int resultCode,Intent data)
setResult(resultCode,data);
两种方式的代码:(省略xml文件、import包等)
-------------------------------------------------------------------------------------------
class Activity:
public class Activity_1 extends Activity{
private Button bt1;
private Button bt2;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_1);
bt1=(Button) findViewById(R.id.button1);
bt2=(Button) findViewById(R.id.button2);
tv=(TextView) findViewById(R.id.textView1);
/*
* 对bt1进行点击监听 点击切换Activity
* 1.第一种方式startActivity的方式实现
* 初始化Intent
*/
bt1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
//第一个参数为上下文对象this 第二个参数 目标文件
Intent intent = new Intent(Activity_1.this,Activity_2.class);
startActivity(intent);
}
});
/*
* 通过startActivityForresult
* */
bt2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Activity_1.this,Activity_2.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 s=data.getStringExtra("data");
tv.setText(s);
}
}
}
------------------------------------------------------------------------------------------------------
class Activity2:
public class Activity_2 extends Activity{
private Button bt3;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
/*
* 第二个页面什么时候给第一个页面回传数据
* 回传到第一个页面实际上为一个Intent对象
*/
bt3=(Button) findViewById(R.id.button3);
bt3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent data = new Intent();
data.putExtra("data", "你好");
setResult(2, data);
//结束当前页面
finish();
}
});
}
}
-------------------------------------------------------------------------------------------------------------
由Intent来协助完成Android各个组件之间的通讯
实现跳转的两种方式
1.startActivity(intent);
2.startActivityForResult(intent,requestCode);
onActivityResult(int requestCode,int resultCode,Intent data)
setResult(resultCode,data);
两种方式的代码:(省略xml文件、import包等)
-------------------------------------------------------------------------------------------
class Activity:
public class Activity_1 extends Activity{
private Button bt1;
private Button bt2;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_1);
bt1=(Button) findViewById(R.id.button1);
bt2=(Button) findViewById(R.id.button2);
tv=(TextView) findViewById(R.id.textView1);
/*
* 对bt1进行点击监听 点击切换Activity
* 1.第一种方式startActivity的方式实现
* 初始化Intent
*/
bt1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
//第一个参数为上下文对象this 第二个参数 目标文件
Intent intent = new Intent(Activity_1.this,Activity_2.class);
startActivity(intent);
}
});
/*
* 通过startActivityForresult
* */
bt2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Activity_1.this,Activity_2.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 s=data.getStringExtra("data");
tv.setText(s);
}
}
}
------------------------------------------------------------------------------------------------------
class Activity2:
public class Activity_2 extends Activity{
private Button bt3;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
/*
* 第二个页面什么时候给第一个页面回传数据
* 回传到第一个页面实际上为一个Intent对象
*/
bt3=(Button) findViewById(R.id.button3);
bt3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent data = new Intent();
data.putExtra("data", "你好");
setResult(2, data);
//结束当前页面
finish();
}
});
}
}
-------------------------------------------------------------------------------------------------------------
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories