如何为一个Fragment设置onClick监听器?

6

我正在使用Android Studio进行工作。我的Activity上有一个Fragment,当用户点击它时,我希望隐藏它。

由于某些原因,我不能像在活动中那样覆盖onclick函数。并且每次我询问谷歌,我都只能找到关于如何为按钮或其他元素实现onclick监听器的问题,但这不是我想要的。我想要为Fragment本身创建onclick监听器。

请问有人可以告诉我如何做吗?


你的代码在哪里? - Vivek Mishra
尝试将一个点击监听器设置到片段的根视图上。 - Lauren.Liuling
@kirankumar 我没有任何按钮可以隐藏。 - joohaha
这个线程看起来是你问题的答案:https://dev59.com/R1rUa4cB1Zd3GeqPjmk6 - Thomas L.
2个回答

6
它的内容如下所示:
public class fragmentOne extends Fragment implements OnClickListener {
    Button myButton;

    @Override
    public View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedinstanceState) {
        View myView = inflater.inflate(R.layout.fragment_1, container, false);
        myButton = (Button) myView.findViewById(R.id.myButton);
        myButton.setOnClickListener(this);
        return myView;
    }

    @Override
    public void onClick(View v) {
        // implements your things
    }
}

谢谢您的回复!但是为什么要将onClickListener添加到按钮上呢?我的片段中没有任何按钮。 - joohaha
用你想要使用的任何视图替换它...这是为了向你展示如何完成! - johnrao07

6
您可以通过在片段的onCreateView中设置ClickListener来完成此操作,如下所示:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
 View v=inflater.inflate(R.layout.layout_your, container, false);
    v.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            //do your operation here
            // this will be called whenever user click anywhere in Fragment
        }
    });
 return v;
}

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