【问题标题】:How to pass String Value between two fragments?如何在两个片段之间传递字符串值?
【发布时间】:2012-02-20 20:25:04
【问题描述】:

我正在开发一个应用程序,它由三个Fragment 和一个Activity 组成:

1.Fragment(1) 由文本视图组成。
2.Fragment(2) 由编辑文本组成。

这是我的问题:

当在片段(1) 中选择TextView 时,应将TextView 值传递给片段(2) 中的EditText

public class OrdersActivity extends Activity {

    private Bundle bundle;
    private ArrayList<String> eList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.orders);

        bundle = new Bundle();
        bundle.putStringArrayList("elist", eList);


        FragmentTransaction order = getFragmentManager().beginTransaction();
        OrdersList orderList = new OrdersList();
        orderList.setArguments(bundle);
        order.add(R.id.frmOrderlist, orderList);
        order.commit();

        FragmentTransaction input = getFragmentManager().beginTransaction();
        InputEdit inputEdit = new InputEdit();
        input.add(R.id.frmOrderinput, inputEdit);
        input.commit();

        FragmentTransaction quoteorder = getFragmentManager().beginTransaction();
        QuoteFragment quotefragment = new QuoteFragment();
        quoteorder.add(R.id.frmSecondList, quotefragment);
        quoteorder.commit();


        FragmentTransaction quotechart = getFragmentManager().beginTransaction();
        ChartOrderFragment chartquote = new ChartOrderFragment();
        quotechart.add(R.id.frmOrderChart, chartquote);
        quotechart.commit();

    }

【问题讨论】:

标签: android android-fragments


【解决方案1】:

好的方法是使用 Activity 作为调度程序来相互通信片段。

  1. 在 Fragment1 中创建自定义侦听器。如果在片段中选择了文本视图,则调用侦听器的方法。
  2. 在 Fragment2 中创建类似 setCustomtext 的方法来更新文本。
  3. 在活动内部创建一个侦听器实现并将其注册到 Fragment1。当文本更改并调用 Fragment2 中的 setCustomtext 方法时,将调用此侦听器。

请看以下链接Communicating with the Activity

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    相关资源
    最近更新 更多