Android fragment 与Activity 互相传值。

一,Activity 传值到 Fragment.

前提: ViewPage使用下。

1,Activity页面

在外声明:
 List<Fragment> list;
 //这是Fragment 的标题
 private String[] mTitles = new String[]{"今日订单","昨日订单"};

在onCreate 方法里面
   list = new ArrayList<>();
   Bundle bundle = new Bundle();
            //MyEarningsFragment 也就是你的Fragment页面
            Fragment fragment = new MyEarningsFragment();
            //很显然这里面的值就是数据里面的,所以可以根据穿值来显示
            bundle.putString("mTitles", mTitles[i]);
            fragment.setArguments(bundle);//**
            list.add(fragment);
        }

2,Fragment 页面中

//在外声明接受:
String title;

//在 onCreateView方法里面
 savedInstanceState = getArguments();
 title= savedInstanceState.getString("mTitles");
 //这个时候通过title 传来的值就可以判断了。

二,Fragment 传值到Activity中。
首先这样想:传值,谁给谁传,就说明 谁在前面。这里当然先写Fragment了

1,Fragment
前提: 我在Fragment 中 进行了方法的查询。这个时候需要把结果,返回给Activity 中。

1)写个接口
   /**
     * 给Activity传值的接口
     */
    public interface FragmentToActity {
        void setStr(double all, double s1, double s2,int p1);
    }
2)在最外层声明
 FragmentToActity fta;//接口声明。

3)利用生命周期onAttach()方法。
 @Override
    public void onAttach(Activity context) {
        super.onAttach(context);
        fta = (FragmentToActity) context;
    }

4) 开始利用接口传值
 public void test(){
     double a1=10.0;
     double a2=20.0;
     double a3=20.0;
     int b=20;
     //把需要传的值给接口。
    fta.setStr(a1,a2,a3,b);
 }    

2,Activity中
前提是Activity 实现这个接口 implements FragmentToActity

//最外层 写你要赋值的数据
double c1,c2,c3;
int s;

    @Override
    public void setStr(double a1, double a2, double a3, int p1) {
     c1=a1;
     .....  
    }

补充:
在Acticvity 中调用Fragment中的方法。

<-- 这个地方前一张有写、-->
 for (int i = 0; i < titles.length; i++) {
            Fragment f = new TransactionFragment();
            Bundle bundle = new Bundle();
            bundle.putString("title",titles[i]);
            //很显然这里面的值就是数据里面的,所以,可以根据穿值来显示
            f.setArguments(bundle);
            list.add(f);
        }
//这个 就是TransactinFragment界面。  
((TransactionFragment)list.get(0)).Query(id);

结束。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值