Android 多个Activity之间跳转和通信
2014-03-26 22:23
232 查看
在开发Android App时,很多App都有很多activity,这些activity是通过Intent对象实现跳转和传递数据的。
比如有两个activity: MainActivity和FirstActivity,如果点击MainActivity上的某个按钮后要跳转到FirstActivity上,有下面四种跳转方式。
方式1:
Intent intent = new Intent();
intent.setClass(this, SecondActivity.class);
startActivity(intent);
方式2:
Intent intent = new Intent();
intent.setClassName(this, "com.lk.multiactivity.FirstActivity");
startActivity(intent);
方式3: 值得一提的是,以这种方式激活Activity,可以跨应用激活
Intent intent = new Intent();
intent.setClassName("com.lk.multiactivity", "com.lk.multiactivity.FirstActivity");
startActivity(intent);
方式4:
Intent intent = new Intent(this, FirstActivity.class);
startActivity(intent);
在两个Activity之间跳转时,有两种方式可以传递和接受数据
/**
* 第一种传递数据的方式
*/
Intent intent = new Intent(this, FirstActivity.class);
intent.putExtra("name", "张三");
intent.putExtra("age", 39);
startActivity(intent);
有时,我们还有这样一种case, 当一个Activity激活另一个Activity后,在另一个Activity上做一些事,当关闭另一个Activity时,传递一些数据到原Activity中,我们可以通过这种方式来打开和关闭子Activity.
主Activity
public void goSecondPage(View view) {
Intent intent = new Intent(this, SecondActivity.class);
// requestCode: 表示你从哪发出的请求
startActivityForResult(intent, 1);
}
/**
* 当通过startActivityForResult打开的activity关闭后,系统就会调用该方法。
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(data != null) {
String email = data.getStringExtra("email");
Toast.makeText(this, email, Toast.LENGTH_SHORT).show();
}
super.onActivityResult(requestCode, resultCode, data);
}
SecondActivity:
/**
* 关闭该Activity
* @param view
*/
public void close(View view) {
Intent data = new Intent();
data.putExtra("email", "zhangsan@hotmail.com");
setResult(200, data);
finish();
}
比如有两个activity: MainActivity和FirstActivity,如果点击MainActivity上的某个按钮后要跳转到FirstActivity上,有下面四种跳转方式。
方式1:
Intent intent = new Intent();
intent.setClass(this, SecondActivity.class);
startActivity(intent);
方式2:
Intent intent = new Intent();
intent.setClassName(this, "com.lk.multiactivity.FirstActivity");
startActivity(intent);
方式3: 值得一提的是,以这种方式激活Activity,可以跨应用激活
Intent intent = new Intent();
intent.setClassName("com.lk.multiactivity", "com.lk.multiactivity.FirstActivity");
startActivity(intent);
方式4:
Intent intent = new Intent(this, FirstActivity.class);
startActivity(intent);
在两个Activity之间跳转时,有两种方式可以传递和接受数据
/**
* 第一种传递数据的方式
*/
Intent intent = new Intent(this, FirstActivity.class);
intent.putExtra("name", "张三");
intent.putExtra("age", 39);
startActivity(intent);
/** * 第二种传递数据的方式 */ Intent intent = new Intent(this, FirstActivity.class); Bundle bundle = new Bundle(); bundle.putString("name", "李四"); bundle.putInt("age", 33); intent.putExtras(bundle ); startActivity(intent);
// 得到启动这个activity的intent Intent intent = getIntent(); /** * 第一种接受数据的方式 */ String name = intent.getStringExtra("name"); int age = intent.getIntExtra("age", 0);
// 得到启动这个activity的intent Intent intent = getIntent(); /** * 第二种接受数据的方式 */ Bundle bundle = intent.getExtras(); String name = bundle.getString("name"); int age = bundle.getInt("age");
有时,我们还有这样一种case, 当一个Activity激活另一个Activity后,在另一个Activity上做一些事,当关闭另一个Activity时,传递一些数据到原Activity中,我们可以通过这种方式来打开和关闭子Activity.
主Activity
public void goSecondPage(View view) {
Intent intent = new Intent(this, SecondActivity.class);
// requestCode: 表示你从哪发出的请求
startActivityForResult(intent, 1);
}
/**
* 当通过startActivityForResult打开的activity关闭后,系统就会调用该方法。
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(data != null) {
String email = data.getStringExtra("email");
Toast.makeText(this, email, Toast.LENGTH_SHORT).show();
}
super.onActivityResult(requestCode, resultCode, data);
}
SecondActivity:
/**
* 关闭该Activity
* @param view
*/
public void close(View view) {
Intent data = new Intent();
data.putExtra("email", "zhangsan@hotmail.com");
setResult(200, data);
finish();
}
相关文章推荐
- Android混合开发之Activity类与html页面之间的相互跳转(并解决黑屏问题)
- [android]Android Activity和Service之间的通信
- Android Framework------之ActivityManagerService与Activity之间的通信
- Android Activity和Service之间的通信
- Android之Activity之间的跳转方式
- android初步实现Activity之间的跳转和数据传递
- Android Activity之间跳转出现短暂黑屏的处理方法
- android通信机制4:Activity与Activity之间的转跳
- Android中BroadCast与Activity之间的通信
- Android Bundle类---activity之间通信
- Android开发:Activity之间的跳转及销毁Activity的方式
- 用intent实现Android中Activity之间的跳转
- Android开发之Activity之间数据通信的几种方式
- Android Service与Activity之间通信的几种方式
- Android中BroadCast与Activity之间的通信
- Android Service与Activity之间通信的几种方式
- Android Service与Activity之间通信的几种方式
- android activity之间的跳转
- Android基础--Service与Activity之间通信的几种方式
- Android Service与Activity之间通信的几种方式