如何从OnClickListener调用片段 [英] How to call Fragment from OnClickListener

查看:106
本文介绍了如何从OnClickListener调用片段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的工作片段。我想从onClickListener调用一个片段。
    我该怎么办呢?这是我的code。从其他的部分我要的一个电话fragment..how这样做呢?

  chartView.setOnClickListener(新View.OnClickListener(){
            @覆盖
            公共无效的onClick(视图v){
                SeriesSelection seriesSelection = chartView
                        .getCurrentSeriesAndPoint();                如果(seriesSelection == NULL){
                    Toast.makeText(getActivity()。getApplicationContext(),
                            没有图表元素被点击了
                            Toast.LENGTH_SHORT).show();
                }其他{
                    Toast.makeText(
                            getActivity()。getApplicationContext(),
                            图元数据点指数
                                    +(seriesSelection.getPointIndex()+1)
                                    +被点击+点值=
                                    + seriesSelection.getValue(),
                            Toast.LENGTH_SHORT).show();
                }
            }
        });


解决方案

有很多方法可以代替片段。
但是我遵循以下方式:

创建addFragmentMethod()之类

 公共无效addFragments(片段片段){
    FragmentManager经理= getSupportFragmentManager();
    FragmentTransaction英尺= manager.beginTransaction();
    ft.replace(android.R.id.tabcontent,片段);
    ft.commit();
}

现在覆盖onAttach()这样的

  @覆盖
公共无效onAttach(活动活动){
    this.activity =(YourActivity)活性;
    myDetail = this.activity.myDetail;
    super.onAttach(活动);
    }

现在只需拨打

  activity.addFragments(片段);

I am working in Fragment. i want to call one fragment from onClickListener. how can i do that? This is my code. from the else part i have to call one fragment..how to do that?

  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. but I follow the way below:

Create addFragmentMethod() like below

 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

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

now just call

activity.addFragments(fragment);

这篇关于如何从OnClickListener调用片段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆