在XML布局中定义的片段如何传递参数

4
public class ActivityA extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_one);
    }
}

activity_one.xml

<fragment
    android:id="@+id/fragment"
    class="com.emoontech.waternow.FragmentA"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

FragmentA(碎片 A)
public class FragmentA extends Fragment{
    public static FragmentEditEvent newInstance(String param1, String param2) {
        FragmentEditEvent fragment = new FragmentEditEvent();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        args.putString(ARG_PARAM2, param2);
        fragment.setArguments(args);
        return fragment;
    }
}

//从另一个活动中的按钮单击事件

Intent intent = new Intent(this, ActivityA.class);
intent.putString("param1","val1");
intent.putString("param2","val2");
startActivity(intent);

//如何将这两个值发送到 FragmentA?

请查看此答案,该问题相似。 - GIRIDHARAN
可能是重复的问题:如何在 Fragment 之间传递值 - ChesuCR
我已经研究过了。你的意思是说,我不能在activity_main.xml中使用<fragment>吗?我需要在activity的onCreate()方法中创建fragment实例并传参数吗? - touchchandra
3个回答

3

2

试一下这个

        // From ActivityA
        // retrieve the content of the intent from the previous activity
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fragment); // set content view to layout

        String param1Text= getIntent().getStringExtra("param1");
        String param2Text = getIntent().getStringExtra("param2");

        // this will pass the parameter to the fragment
        Fragment frament = FragmentA.newInstance(param1Text, param2Text);
        // use the fragment for what you desire

    }

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接