Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android ViewBinding-McClickListener不';我没打电话_Java_Android_Onclicklistener_Android Viewbinding - Fatal编程技术网

Java Android ViewBinding-McClickListener不';我没打电话

Java Android ViewBinding-McClickListener不';我没打电话,java,android,onclicklistener,android-viewbinding,Java,Android,Onclicklistener,Android Viewbinding,请帮助找出为什么视图绑定onItemClickListener不起作用 简而言之:我正在加载片段列表。并且需要通过单击项来选择要加载的片段,因此为此我实现了AdapterView.OnItemClickListener。但当我执行一个click-nothing时,不会调用该方法 public class ChooserFragment extends ListFragment implements AdapterView.OnItemClickListener { private Ch

请帮助找出为什么视图绑定
onItemClickListener
不起作用

简而言之:我正在加载片段列表。并且需要通过单击项来选择要加载的片段,因此为此我实现了
AdapterView.OnItemClickListener
。但当我执行一个click-nothing时,不会调用该方法

public class ChooserFragment extends ListFragment implements AdapterView.OnItemClickListener {

    private ChooserFragmentBinding mBinding;

    private static final Class<?>[] CLASSES = new Class[]{
        EmailPasswordFragment.class,
        EmailPasswordFragment.class,
    };

    private static final int[] DESCRIPTION_IDS = new int[]{
        R.string.desc_emailpassword,
        R.string.desc_emailpassword,
    };

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        mBinding = ChooserFragmentBinding.inflate(inflater, container, false);
        View view = mBinding.getRoot();

        CustomArrayAdapter adapter = new CustomArrayAdapter(getContext(), android.R.layout.simple_list_item_2, CLASSES);
        adapter.setDescriptionIds(DESCRIPTION_IDS);

        mBinding.list.setAdapter(adapter);
        mBinding.list.setOnItemClickListener(this);

        return view;
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        mBinding = null;
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Class<?> clicked = CLASSES[position];
        Log.d("Clicked", String.valueOf(position));

    }


    public static class CustomArrayAdapter extends ArrayAdapter<Class<?>> {

        private Context mContext;
        private int[] mDescriptionIds;

        public CustomArrayAdapter(Context context, int resource, Class[] objects) {
            super(context, resource, objects);
            mContext = context;
        }

        @SuppressWarnings("NullableProblems")
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View view = convertView;

            if (convertView == null) {
                LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
                view = inflater.inflate(android.R.layout.simple_list_item_1, null);
            }

            ((TextView) view.findViewById(android.R.id.text1)).setText(mDescriptionIds[position]);

            return view;
        }

        public void setDescriptionIds(int[] descriptionIds) {
            mDescriptionIds = descriptionIds;
        }
    }
}
公共类选择器片段扩展ListFragment实现AdapterView.OnItemClickListener{
私有选择器碎片绑定绑定绑定;
私有静态最终类[]类=新类[]{
EmailPasswordFragment.class,
EmailPasswordFragment.class,
};
私有静态最终int[]描述\u id=new int[]{
R.string.desc_电子邮件密码,
R.string.desc_电子邮件密码,
};
@可空
@凌驾
创建视图时的公共视图(@NonNull LayoutInflater inflater、@Nullable ViewGroup container、@Nullable Bundle savedInstanceState){
mBinding=选择FragmentBinding.充气(充气器、容器、假);
View=mBinding.getRoot();
CustomArrayAdapter=新的CustomArrayAdapter(getContext(),android.R.layout.simple\u list\u item\u 2,类);
adapter.setDescriptionId(描述ID);
mBinding.list.setAdapter(适配器);
mBinding.list.setOnItemClickListener(此);
返回视图;
}
@凌驾
公共无效onDestroyView(){
super.onDestroyView();
mBinding=null;
}
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
单击的类=类[位置];
Log.d(“单击”,String.valueOf(位置));
}

公共静态类CustomArrayAdapter扩展ArrayAdapter是否有某些原因导致必须使用片段扩展ListFragment并实现AdapterView.OnItemClickListener?请以正常方式尝试,看看会发生什么:

mBinding.list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Log.d("LOG", "test");
        }
    });
mBinding.list.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Log.d(“日志”、“测试”);
}
});

看看这是否有帮助:感谢您的关注,原因是扩展了我尝试使用的“ListFragment”。两个选项都很好。
mBinding.list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Log.d("LOG", "test");
        }
    });