Fragment和Activity通讯
2015-09-24 17:08
357 查看
一、Fragment端
在fragment 中 startActivityForResult
在fragment中OnActivityForResult()
二、Activity接收端
Activity拿到值做了处理后给fragment回值
在fragment 中 startActivityForResult
private static final int <span style="font-family: Arial, Helvetica, sans-serif;">WITHDRAW =0;//整数</span>
//如果网络不好 没有拿到 可提现额 不让点 if(!withDrawMoney.getText().equals("")&&!(withDrawMoney.getText()==null)){ Intent moneyIntent = new Intent(); moneyIntent.setClass(getActivity(), com.icloudsoft.handcashier.center.WithdrawActivity.class); moneyIntent.putExtra("withdrawMoney", Double.valueOf(withDrawMoney.getText().toString())); moneyIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivityForResult(moneyIntent, WITHDRAW); // 设置activity切换动画,从右边进入,左边退出 getActivity().overridePendingTransition( R.anim.activity_in_from_right, R.anim.activity_out_to_left); }
在fragment中OnActivityForResult()
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // Activity.RESULT_OK =-1 Activity.RESULT_CANCELED=0 if (resultCode != Activity.RESULT_OK){ System.out.println("进入onActivityResult return =============="); return; } if(requestCode == WITHDRAW){ System.out.println("进入onActivityResult WITHDRAW=============="); Double money = data.getDoubleExtra(WithdrawActivity.UPDATE_WIRHDRAW,0); //拿到setresult中设置的值 } }
二、Activity接收端
public final String <span style="font-family: Arial, Helvetica, sans-serif;">UPDATE_WIRHDRAW=“update withdrew” // string 型</span><pre name="code" class="java">
if (getIntent() != null) { totalMoney = Double.valueOf( getIntent().getDoubleExtra("withdrawMoney", 0)); // 收到startActivty中设置的值 System.out.println("total money is: "+totalMoney); }
Activity拿到值做了处理后给fragment回值
Intent i = new Intent(); Bundle bundle=new Bundle(); String money=withdraw_et.getText().toString(); System.out.println("bundle.putDouble money is: "+money+" Double.valueOf(money) "+Double.valueOf(money)); bundle.putDouble(UPDATE_WIRHDRAW, Double.valueOf(money)); i.putExtras(bundle); setResult(Activity.RESULT_OK,i);
</pre>或者直接传double类型<pre name="code" class="java"><span style="white-space:pre"> </span>Intent i = new Intent(); String money=withdraw_et.getText().toString(); System.out.println("bundle.putDouble money is: "+money+" Double.valueOf(money) "+Double.valueOf(money)); i.putExtra(UPDATE_WIRHDRAW, Double.valueOf(money)); setResult(Activity.RESULT_OK,i);
相关文章推荐
- FragmnetActivity 出现onSaveInstance() 错误
- viewpager+fragment出现fragment不显示问题
- Android中Fragmen首选项使用自定义的ListPreference的方法
- mysqldump的使用
- 杭电2068RPG的错排
- 如何判断请求的接口数据为null或(null)<null>
- poj2406 Power Strings
- Cocoapod错误 - Xcode6.4
- 黑马程序员——String、StringBuffer、StringBuilder和基本数据类型包装类
- Solr+Zookeeper+HDFS+Tomcat 配置一些理解
- Android基础入门教程——2.4.11 AutoCompleteTextView(自动完成文本框)的基本使用
- 字符串与整型数组的相互转换
- 一个Activity的显示
- 关于checkbox/radio选中不选中HTML不变化
- 開博說明
- Android软件开发之 自定义别样Toast
- NSPredicate
- 第4周项目3 - 单链表应用(1)
- 读IOS进阶笔记。
- zabbix mysql数据库迁移方案