【问题标题】:How to call Fragment from OnClickListener如何从 OnClickListener 调用 Fragment
【发布时间】:2014-01-22 14:04:01
【问题描述】:

我在 Fragment 工作。我想从 onClickListener 中调用一个片段。 我怎样才能做到这一点?这是我的代码。从其他部分我必须调用一个片段..怎么做?

  chartView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SeriesSelection seriesSelection = chartView
                        .getCurrentSeriesAndPoint();

                if (seriesSelection == null) {
                    Toast.makeText(getActivity().getApplicationContext(),
                            "No chart element was clicked",
                            Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(
                            getActivity().getApplicationContext(),
                            "Chart element data point index "
                                    + (seriesSelection.getPointIndex() + 1)
                                    + " was clicked" + " point value="
                                    + seriesSelection.getValue(),
                            Toast.LENGTH_SHORT).show();


                }
            }
        });

【问题讨论】:

  • 很抱歉,我不明白您所说的“调用一个片段”是什么意思,您想向观察到的片段发送信号或在运行时点击充电/恢复它?
  • 你能澄清你的问题吗?您想在 Listener 中将一个片段替换为另一个片段吗?
  • 在上面的代码中,从 toast 消息后的 else 部分,我想调用片段。如果是活动,我可以通过 startactivity(intentobject) 调用。但我不知道如何调用fragmnet?
  • 每个活动有一个片段吗?

标签: android android-fragments


【解决方案1】:

有很多方法可以替换 Fragment。 但我遵循以下方式:

如下创建 addFragmentMethod()

 public void addFragments(Fragment fragment) {
    FragmentManager manager = getSupportFragmentManager();
    FragmentTransaction ft = manager.beginTransaction();
    ft.replace(android.R.id.tabcontent, fragment);
    ft.commit();
}

现在像这样覆盖 onAttach()

@Override
public void onAttach(Activity activity) {
    this.activity = (YourActivity) activity;
    myDetail = this.activity.myDetail;
    super.onAttach(activity);
    }

现在打电话

activity.addFragments(fragment);

【讨论】:

    【解决方案2】:

    我认为您想要的是在另一个已添加的 Fragment 中调用方法。这是通过两个 Fragment 共享的 Activity 完成的。这里有一个指南:http://developer.android.com/training/basics/fragments/communicating.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-08
      • 2013-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-01
      • 1970-01-01
      相关资源
      最近更新 更多