简体   繁体   English

如何从OnClickListener调用Fragment

[英]How to call Fragment from OnClickListener

I am working in Fragment. 我在Fragment工作。 i want to call one fragment from onClickListener. 我想从onClickListener调用一个片段。 how can i do that? 我怎样才能做到这一点? This is my code. 这是我的代码。 from the else part i have to call one fragment..how to do that? 从else部分我必须调用一个片段..如何做到这一点?

  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();


                }
            }
        });

There are many ways to replacing Fragments. 有很多方法可以替换Fragments。 but I follow the way below: 但我遵循以下方式:

Create addFragmentMethod() like below 像下面一样创建addFragmentMethod()

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

now override onAttach() like this 现在覆盖onAttach()就像这样

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

now just call 现在只需打电话

activity.addFragments(fragment);

I think what you want is to call a method in another Fragment that is already added. 我想你想要的是在另一个已经添加的片段中调用一个方法。 This is done via the Activity that both Fragments share. 这是通过两个片段共享的活动完成的。 There's a guide here: http://developer.android.com/training/basics/fragments/communicating.html 这里有一个指南: http//developer.android.com/training/basics/fragments/communicating.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM