【问题标题】:pass data from activity to fragment but always return null将数据从活动传递到片段,但始终返回 null
【发布时间】:2016-11-28 09:26:40
【问题描述】:

我想将数据从 MainActivity 传递到 Fragment,我将其用于我的操作

switch (txt.getText().toString()){

       case "Jumlah(Tinggi-Rendah)":
         dialog.dismiss();
         cond = "desc";
         by = "jumlah";
         Log.e("By1 : ", ""+by );
         Intent intent = new Intent("KEY");
         sendBroadcast(intent);
         return;

这是我得到的字符串

public String getDataAkun(){

   return idakun;
}

public String getDataBy(){
    return by;
}

这是我片段中的脚本

MainActivity activity = (MainActivity) getActivity();

    idakun = activity.getDataAkun();
    by = activity.getDataBy();

这是我的广播

private BroadcastReceiver updateProfileBroadcast = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        //Fire your event
        list_transaksi();
        Toast.makeText(getContext(),"huft :"+by+" - "+idakun,Toast.LENGTH_LONG).show();
    }
};

当我运行我的操作时,只有“idakun”获取数据但“by”返回 null

enter image description here 我是 android 编程新手,所以如果有任何帮助,请...

【问题讨论】:

  • 您在活动中创建片段对吗?为什么不在activity中创建一个对象,在fragment中调用setter方法在activity和fragment之间传递值呢。
  • 您可以使用更简单的方法在片段和活动之间发送数据
  • 我已经尝试过了,但仍然返回 null @jgm

标签: android null fragment pass-data


【解决方案1】:

要将数据从活动发送到片段,只需创建一个 Bundle 并将所需的参数放入其中,然后在附加或替换该片段时将该包设置在 fragment.setArguments() 中。

这是一个例子:

Bundle bundle = new Bundle();
bundle.putInt("Key", 2);
Fragment frag = new YourFragment();
frag.setArguments(bundle);
--> then add or replace fragment as you want.

更新:在片段的 onCreate() 方法中放入以下代码:

Bundle bundle = getArguments(); int i = bundle.getInt("key");

还是不明白可以在下方评论。

【讨论】:

  • 仍然返回空值,谢谢您的帮助
  • 更新的答案可能会对您有所帮助。请检查
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-24
  • 2018-03-07
相关资源
最近更新 更多