1.Fragment 给activity传值,用的intent
Intent intent = new Intent(getActivity(), Activity.class);
intent.putExtra("cid", city_id);
startActivity(intent);
2.Activity之间传值,同上,也是用的Intent
3。Activity界面上有popupWindow显示进行选择的时候,popu给当前所在的Activity传值,用回调的方法
(1)第一种方法
在Activity界面定义一个方法,如下,括号里面是所需要的参数,即需要传递的数据
public void initBusiness(String bbid, String flag)
}
在popuwindow界面,首先声明一下Activity、
HotelActivity mHotelActivity;
在popu的构造函数里面强转一下
mHotelActivity= (HotelActivity) mContext;
在需要传递数据的地方传值调用该方法
mHotelActivity.initBusiness(cbid,flag);
(2)回调函数
在popu里面定义一个回调监听
public interface OnCallbackListener{
public void oncallBack(String num);
}
在Activity继承这个监听implements OnCallbackListener,然后实现这个方法
/**
* 回调接口
*/
@Override public void oncallBack(String num) {
}
同样的方法在popu里面声明Activity,然后强转
private OnCallbackListener mOnCallbackListener;
private Activity activity;
mOnCallbackListener= (OnCallbackListener) context;
在需要传值的地方传值
mOnCallbackListener.oncallBack(text_one.getText().toString());
值得注意的是,在项目中一般在MainActivity里面有Fragment实现碎片的效果,在这样的情况下Activity(popu)如果给Fragment传值不能用这样回调的方法,因为不在一个层面上。就得用SharedPreferences pro进行传递数据,或者用bundle
private Handler mHandler;
传递数据
Message msg=new Message();
Bundle data=new Bundle();
data.putString(“cbid”,cbid);
data.putString(“flag”,flag);
msg.setData(data);
msg.what=300;
mHandler.sendMessage(msg);
接收数据
handler=new Handler(){
public void handleMessage(android.os.Message msg){
switch (msg.what){
case 300:
Bundle bundle=msg.getData();
String flag= String.valueOf(bundle.get(“flag”));
暂时先介绍这几种常用的方法,当然传值的方法很多,需要的再去查询吧。谢谢