Java OnClickListener 在 Android 片段中不工作

Java OnClickListener not working in Android Fragment

我正在尝试在 Fragment 中添加对按钮的简单点击,但该事件被忽略了。

这是代码:

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

不知道代码有什么问题?

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

好的,我已经使用 FragmentManager

解决了这个问题

喜欢 :-

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


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

有关更多详细信息:- 转到