您的位置:首页 > 其它

Fragment和Activity通讯

2015-09-24 17:08 357 查看
一、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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  fragmen activiy通信