简体   繁体   中英

Java OnClickListener not working in Android Fragment

I am trying to add a simple click on a button in a Fragment but the event is ignored.

This is the code:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View i =  inflater.inflate(R.layout.fragment_id_upload, container, false);

    btn = i.findViewById(R.id.button3);

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.i("data","ok clickled");
            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
            builder.setMessage("hjgdfhfghfghf gfdgf");
            AlertDialog dialog = builder.create();
            dialog.show();
        }
    });


    return i;
}

I don't know what is wrong in the code?

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View i =  inflater.inflate(R.layout.fragment_id_upload, container, false);

    btn = i.findViewById(R.id.button3);

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.i("data","ok clickled");
            AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity());
            builder.setMessage("hjgdfhfghfghf gfdgf");
            AlertDialog dialog = builder.create();
            dialog.show();
        }
    });


    return i;
}


Try requireActivity() instead of getActivity()

ok I have fixed this by using FragmentManager

like:-

FragmentManager fragment = getSupportFragmentManager();
fragment.beginTransaction().replace(R.id.fragmentContainerView, fragment_id_upload.class,null).commit();


R.id.fragmentContainerView  //this is fragment container view

for more details:- go to Android Studio - Fragment onClickListener not working

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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