将数据从活动传递到片段但始终返回null

时间:2016-11-28 09:26:40

标签: android null fragment pass-data

我想将数据从MainActivity传递给片段我用它来执行我的操作

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();
    }
};

当我开始行动时,#id; idakun"谁得到了数据但是" by"正在返回null

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

1 个答案:

答案 0 :(得分:0)

要将数据从活动发送到片段,只需创建一个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");

仍然不清楚,然后在下面评论。