Android中两个Activity之间数据传递及返回
来源:互联网 发布:自适应滤波的各种算法 编辑:程序博客网 时间:2024/05/17 22:07
下面通过一个例子来详细说明
先上代码,再细细分析
MainActivity
public class MainActivity extends Activity{private Button mainBtn=null;private final static int REQUEST_CODE=1;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);mainBtn=(Button)findViewById(R.id.mainBtn);mainBtn.setOnClickListener(listener);}private OnClickListener listener=new OnClickListener(){@Overridepublic void onClick(View v){Intent intent=new Intent();intent.setClass(MainActivity.this, SecondActivity.class);intent.putExtra("str", "Intent Demo");startActivityForResult(intent, REQUEST_CODE);}};@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data){if (requestCode==REQUEST_CODE){if (resultCode==SecondActivity.RESULT_CODE){Bundle bundle=data.getExtras();String str=bundle.getString("back");Toast.makeText(MainActivity.this, str, Toast.LENGTH_LONG).show();}}}}
由MainActivity 通过最简单的Intent.putExtra方法,将参数传入,也可以用Bundle传入参数,
Bundle bundle = new Bundle();
bundle.putString("str", "Intent Demo");
intent.putExtras(bundle);
若需要获得返回值,则用startActivityForResult(),并需要知道返回的一个RESULT_CODE(int类型),可以理解为指针,用intent.setClass() 确定传递给那个类(这里包括Activity、Service等)。第二个Activity---本例中的SecondActivity ,用Intent intent=getIntent();Bundle bundle=intent.getExtras();String str=bundle.getString("str");获得前一个Activity传来的参数,这里还需要返回给MainActivity参数,用到了setResult(RESULT_CODE, intent); 这里 要说明的是RESULT_CODE必须与前一个Activity一致,否则就不能正常返回。而第一个MainActivity通过重写onActivityResult()来取得相应的返回值。
若不需要返回,可以直接用startActivity()。
SecondActivity
public class SecondActivity extends Activity{public final static int RESULT_CODE=1;private TextView secondTxt;private Button secondBtn;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.second);Intent intent=getIntent();Bundle bundle=intent.getExtras();String str=bundle.getString("str");secondTxt=(TextView)findViewById(R.id.secondTxt);secondTxt.setText(str);secondBtn=(Button)findViewById(R.id.secondBtn);secondBtn.setOnClickListener(listener);}private OnClickListener listener=new OnClickListener(){@Overridepublic void onClick(View v){Intent intent=new Intent();intent.putExtra("back", "Back Data");setResult(RESULT_CODE, intent);finish();}};}
对于初学者,还得提醒一下,别忘记在AndroidManifest.xml添加SecondActivity类
<activity android:name=".SecondActivity" android:label="@string/app_name"></activity>
0 0
- Android中两个Activity之间数据传递及返回
- Android中两个Activity之间数据传递及返回
- Android中两个Activity之间数据传递及返回
- Android中两个Activity之间数据传递及返回
- Android中两个Activity之间数据传递及返回
- Android中两个Activity之间数据传递及返回
- Android中两个Activity之间数据传递及返回
- Android中两个Activity之间数据传递及返回
- Android 两个Activity之间传递数据及返回
- Android中Activity之间数据传递及返回
- Android Studio中两个Activity之间的转换及数据的传递
- Android中在两个Activity之间进行数据传递
- Android 在两个 Activity 之间传递数据
- Android之两个activity之间传递数据且有返回值
- Android中Activity之间传递数据详解
- Android Activity、Fragment之间的数据传递和返回
- Android学习笔记-两个Activity之间传递数据
- [一问一答][Android] 如何在两个Activity之间传递(共享)数据
- OC语言--字符串(NSString& NSMutableString)
- openstack、hadoop还可以的书籍
- 【大话设计模式】——创建型模式总结
- hadoop需要的各种包
- 【Linux】【Vim】参考资源
- Android中两个Activity之间数据传递及返回
- 小米科技12.66亿元入股美的集团
- SpringMVC工作原理
- 性格特质和自我管理
- Linux下的多线程编程
- “流式”前端构建工具——gulp.js 简介
- UVA - 10420 List of Conquests
- OC语言--继承、点语法、类别
- 版本发布包MD5生成的办法