首页 > 解决方案 > 在android中将数据从活动传递到片段不起作用

问题描述

我想将参数从活动传递到片段。这是来自活动的代码:

public class MatchActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_match);
        Bundle bundle = new Bundle();
        bundle.putString("edttext", "From Activity");
        MarqueFragment fragobj = new MarqueFragment();
        fragobj.setArguments(bundle);

    }

}

这是片段中的代码:

public class MarqueFragment extends Fragment {

    @Override
    public void onCreate ( Bundle savedInstanceState ) {
        super.onCreate(savedInstanceState);
    }
    @Override
    public View onCreateView ( LayoutInflater inflater, ViewGroup container,   Bundle savedInstanceState ) {
        View convertView=inflater.inflate(R.layout.fragment_marque, container, false);


            if (getArguments() != null) {
                String mParam1 = getArguments().getString("edttext");
                System.out.println("got this from MatchActivity "+mParam1);
            }else{
                System.out.println("got nothing");
            }     
}

我没有得到任何论据,我不知道为什么。注意:我没有收到错误,我得到“一无所有”作为输出。

标签: androidandroid-studioandroid-fragmentsfragment

解决方案


将您的代码更改为此

Bundle bundle = new Bundle();
bundle.putString(edttext", "From Activity");
MarqueFragment fragobj = new MarqueFragment();
fragobj.setArguments(bundle);
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_marque, fragobj);
transaction.commit();

推荐阅读