如何将字符串数据从活动传递到片段?

1 android fragment android-fragments

我想将字符串值从活动传递到片段.为此,我使用bundle来传输字符串值.

PUT STRING ACTIVITY 传递字符串值: -

           Bundle bundle = new Bundle();
            bundle.putString("Value", resultp.get(CurrentProjectActivity.VALUE));
            Log.d(TAG, "Value  ::: " + resultp.get(CurrentProjectActivity.VALUE));
            // set Fragmentclass Arguments
            AmenetiesFragment fragobj = new AmenetiesFragment();
            fragobj.setArguments(bundle);
Run Code Online (Sandbox Code Playgroud)

在日志中我也获得了"价值"价值.

在碎片中获得价值(它不起作用).

     @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.activity_listview, container, false);
    Bundle bundle = this.getArguments();
    Log.d(TAG, "Value's value:)  ::: " + bundle);
    String strtext = bundle.getString("Value");
    return rootView;
}
Run Code Online (Sandbox Code Playgroud)

在日志中我为BUNDLE获取NULL值.请帮我解决这个问题.提前致谢.

Aks*_*dam 11

我建议你遵循这个链接1.你应该使用接口.点击这里

Bundle bundle = new Bundle();
bundle.putString("edttext", "From Activity");
// set Fragmentclass Arguments
Fragmentclass fragobj = new Fragmentclass();
fragobj.setArguments(bundle);
Run Code Online (Sandbox Code Playgroud)

并在Frament任务中

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    String strtext = getArguments().getString("edttext");    
    return inflater.inflate(R.layout.fragment, container, false);
}
Run Code Online (Sandbox Code Playgroud)


小智 5

假设你想从Activity发送String数据到Fragment

在 Fragment.java 文件中添加以下代码,

public static String name= null;

public void setName(String string){
name = string;
}
Run Code Online (Sandbox Code Playgroud)

在要从中发送字符串的 MainActivity.java 中添加以下代码,

String stringYouWantToSend;

Fragment fragment =  new Fragment();
fragment.setName(stringYouWantToSend);   
Run Code Online (Sandbox Code Playgroud)