ListView onItemClick无法在Activity中工作

Arc*_*pgc 2 android listview onitemclicklistener

当我在具有ListView的活动中使用它时,它不起作用.

usersList.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
            ong arg3) {
    try {
        Intent intent = new Intent(UsersListActivity.this,
                UserActivity.class);
        startActivity(intent);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

在寻找解决方案后,我最终getView()适配器中进行了此操作

convertView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
            ong arg3) {
    try {
        Intent intent = new Intent(mActivity,
                UserActivity.class);
        mActivity.startActivity(intent);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

这有效.但为什么这么奇怪的行为.它为什么不按照应有的方式工作.

谢谢

Sah*_* Mj 5

usersList.setOnItemClickListener(new AdapterView.OnItemClickListener() {

在这里你使用ViewAdapter View,这是你的父类Custom Adapter.这就是为什么它不起作用.相反,你应该使用ViewCustom Adapter.

getView()函数此处可帮助您将父视图转换Adpater ViewCustom Adapter视图.

所以你使用两个选项中的任何一个,

usersList.setOnItemClickListener(new CustomAdapterView.OnItemClickListener() {
Run Code Online (Sandbox Code Playgroud)

要么

usersList.setOnItemClickListener(new OnItemClickListener() {
Run Code Online (Sandbox Code Playgroud)

这两个选项都可行.