android中各种界面之间的传值

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”));


 暂时先介绍这几种常用的方法,当然传值的方法很多,需要的再去查询吧。谢谢
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值