Activity的跳转与传值
以下例子,存在两个Activity文件,MainAcitivity和SelectInputActivity。由MainActivity跳转到SelectInputActivity,并由SelectInputActivity
返回到MainActivity。
(1)无返回结果,从一个Activity启动另一个Activity,直接startActivity(intent),以下代码位于MainActivity文件
((Button) findViewById(R.id.myButton)).setOnClickListener( new OnClickListener() {
public void onClick(View v) {
startActivity(new Intent (MainAppActivity.this, OtherActivity.class) );
}
});
(2)返回数据/结果,可在MainActivity文件使用startActivityForResult (Intent intent, int requestCode),requestCode的值是自定义的,
用于识别跳转的目标Activity。跳转的目标Activity所要做的就是返回数据/结果,setResult(int resultCode)只返回结果不带数据,或者setResult(int resultCode, Intent data)
带数据。在MainActivity文件中覆写接收返回的数据/结果的处理函数onActivityResult(int requestCode, int resultCode, Intent data),这里的requestCode就是startActivityForResult的requestCode,
resultCode就是setResult里面的resultCode,返回的数据在data里面。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
MainActivity文件:
myButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent it=new Intent();
it.setClass(MainActivity.this, SelectInputActivity.class);
MainActivity.this.startActivityForResult(it, 0);
}
});
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//此处需要判断data是否为null,例如用户可能通过按Back键返回到原来的MainActivity (Tip)
if(data!=null){
TextView tv=(TextView)findViewById(R.id.myTextView);
tv.setText(data.getExtras().getString("text"));
}
}
SelectInputActivity文件:
myButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent it=SelectInputActivity.this.getIntent();
it.putExtra("text", "it is success!");
SelectInputActivity.this.setResult(1, it);
finish(); //一定要调用finish()函数,否则无法返回到原来的MainActivity,就不能调用MainActivity的onActivityResult函数
}
});
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
针对(Tip)处的null问题,另一种更好的处理方案,在SelectInputActivity中监听按键事件并在事件处理函数中做setResult赋值处理,使返回data已被初始化。
分享到:
相关推荐
Activity跳转与传值,主要是通过Intent类来连接多个Activity,以及传递数据。 Intent是Android一个很重要的类。Intent直译是“意图”,什么是意图呢?比如你想从这个Activity跳转到另外一个Activity,这就是一个...
SmartGo:通过编译时注解生成文件,简化 Activity 跳转时传值及取值
android界面跳转与传值 android中Activity的跳转和值通过SharedPreferences传递。
通过一个有意思的小demo来实现Activity跳转及传值。
在Android的开发过程中,有时需要进行Activity之间的跳转,在页面跳转的过程中,有时需要传递指定的参数数据过去,例如:信息发布app返回查询条件的需要,为此,就需要了解这方面的技术与实现方式。
自己项目中用到fragment搭建框架,从网上找得一个demo,实现activity与fragment相互传值;fragment与fragment跳转。跟大家分享
在Android系统的江湖中有四大组件:活动(Activity), 服务(Service), 广播接收器(Broadcast Reciver)和内容提供者(Content Provider)。...本篇博客要介绍的内容是活动的创建,活动的跳转与值的透传。 iOS中的V
1.使用 Intent 和 Bundle 实现页面之间的参数传递和跳转; 2.ListView 的使用以及 ListView 中 Item 的点击事件处理 3.button点击事件
该程序实现了activity之间的跳转以及传值!
用Intent进行跳转并传值给下一个Activity.
详细的介绍可以参考我的博客
基本概括android的activity之间跳转的代码
这种你需要把接口声明成静态的,每个界面之后一个activity,只有一个this,跳转之后就销毁了。所以接口传值多用于Activity和Fragment之间,或者Fragment和Adapter之间。 mainActivityTwo.setCeshi(new ...
Android学习之点击按钮跳转至另一个Activity并传值和设置返回逻辑父屏幕
学习安卓最基本的要求:学会activity直接的跳转,并能够传值,可直接导入eclipse。努力学习吧
能将第一个activity的值传到第二个activity,第二个activity的值能返回到第一个activity,适合初学者那来学习
Intent跳转传值,和Activity返回传值