How to set onClick listener for a Fragment?

2019-05-07 18:24发布

问题:

I am working with Android Studio. I have a fragment on my Activty and I want to hide it when the user clicks on it.

For some reason I can´t just override a function for onclick like in the activties. And everytime I ask google all I can find are questions about how to Implement onclick listeners for buttons or other elements in a fragment but that is not what I want. I want the onclick listener for the fragment itself.

Can anyone please tell me how to do that!?

回答1:

You can do this by set ClickListener on the view inflating in a onCreateView of fragment like this :

@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;
}


回答2:

It goes like below

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
    }
}