Android中关于Activity之间传值的问题(基础问题)
来源:互联网 发布:chart.js 编辑:程序博客网 时间:2024/05/22 07:09
也是Android中的一种基础知识点吧,希望还是帮助理解吧,虽然简单点了,献给需要的人群,仅供参考。
关于两个Activity之间传值的问题,首先要搞清楚两个activity那个是父类,那个是子类,通常父类是想要结果,而让子类帮他处理,做完以后将结果回传给父类,我的父类是ZxingActivity.java,而子类是SimpleCaptureActivity.java.我以扫描二维码为例简单说一下吧。请按照核心代码注释的顺序走,你会理解的。
首先看父类ZxingActivity.java中的核心代码。
public void onClick(View v) { switch (v.getId()) { //打开框扫描 case R.id.btn_switch: changeLight(); //1.父类包装数据,给子类布置任务,我需要什么结果, Bundle bundle = new Bundle(); bundle.putString("data", "data"); Intent intent = new Intent(ZxingActivity.this, SimpleCaptureActivity.class); intent.putExtras(bundle); //2.当我给子类告诉完消息之后,告诉子类我是需要返回结果的,因此要通过startActivityForResult()方法,这时候请求就发送给了子类 startActivityForResult(intent,001); break;
看SimpleCaptureActivity.java中的核心代码,代码执行的顺序请参照注释的顺序
@Overrideprotected void handleResult(final String resultString) { if (TextUtils.isEmpty(resultString)) { Toast.makeText(mActivity, io.github.xudaojie.qrcodelib.R.string.scan_failed, Toast.LENGTH_SHORT).show(); restartPreview(); } else { if (mDialog == null) { mDialog = new AlertDialog.Builder(mActivity) .setMessage(resultString) .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //3.子类收到了父类的问题, Intent intent1 = getIntent(); // 4.开始回答父亲的问题,将自己的答案给父类的intent intent1.putExtra("myresuly", resultString); //5.子类将自己的响应码和设置的结果通过setResult(002,intent1)返回给父类, // 这时候父类就需要重写onActivityResult()方法显示结果了 setResult(002, intent1); finish(); } }) .create();
此时,子类完成了父类的任务,此时父类就要验货了,看看子类给的是不是他想要的结果了,因此又回到了父类ZxingActivity.java中,通过重写onActivityResult()方法来验收子类给的结果。
//6.处理子类带回来的结果@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==REQUEST_OK && resultCode==RESPONSE_OK){ Bundle bundle=data.getExtras(); String dataResult=bundle.getString("myresuly"); Log.i("res","拿到结果了吗?"+dataResult); mQRCodeResult.setText(bundle.getString("myresuly")); }}
这样就搞定了两个Activity之间的传值问题,希望能够帮到你哦,我是小萝莉。
阅读全文
0 0
- Android中关于Activity之间传值的问题(基础问题)
- 关于Android中Activity之间socket传递的问题
- 关于Activity之间相互传值的问题
- 关于Android中activity的问题
- 关于Android中activity的问题
- Android之---Activity与Fragment之间的传值问题
- Activity之间传值的问题
- Android 关于Activity中存储数据的问题
- 关于方法之间传值的问题
- 关于android的Activity的小问题
- android开发中页面之间跳转的传值问题
- 安卓中不同Activity之间的传值问题用Intent
- Activity之间的切换问题
- Activity之间的数据问题
- Android中不同Activity之间传递自定义对象的参数问题的解决
- activity之间传值,serializable问题
- android开发中fragment与activity之间相互跳转的问题
- 关于Activity中onCreate()方法执行两次的问题
- mysql 复制语句
- linux/NAT技术与代理服务器调研
- Mybatis的动态sql语句if和choose
- 如何将dockerhub与github关联
- springboot使用websocket遇到的坑
- Android中关于Activity之间传值的问题(基础问题)
- Deepgreen数据库日志清理脚本
- 车抵借款协议书
- HTML标签marquee实现滚动效果
- MATLAB学习笔记 函数记录(四)
- 牛!各大公司【薪资待遇】一览,我心动了
- IntelliJ IDEA 快捷键大全
- Eclipse创建git仓库
- 第一个程序“Hello World !”