OnItemClickListener未执行

时间:2015-01-29 08:01:51

标签: android listview android-listview baseadapter

在mainActivity中我有一个带有cutomised适配器的listView,适配器类扩展了BaseAdapter

在mainActivity中我试图在项目被阻塞时显示消息,因此我调用OnItemClickListener并在其中显示toast。但当我点击一个项目时,没有显示任何内容。

请知道我错过了什么。

MainActivity

private void setUpListView() {
    // TODO Auto-generated method stub
    this.topicsList = new ArrayList<String>();

    for (int i = 0; i < this.topics.length; i++) {
        this.topicsList.add(topics[i]);
    }

    this.adapter = new listViewAdapter(getApplicationContext(), this.topicsList);
    this.listView.setAdapter(adapter);
    this.listView.setOnItemClickListener(listViewitemListener);
}
....
....
private OnItemClickListener listViewitemListener = new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        // TODO Auto-generated method stub
        Toast.makeText(getApplicationContext(), "item clicked", Toast.LENGTH_SHORT).show();

    }
};

BaseAdapter

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub


    if (convertView == null) {
        LayoutInflater layoutinflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        convertView = layoutinflater.inflate(R.layout.list_items_layout, null);
    }

    TextView tv = (TextView) convertView.findViewById(R.id.tvlist_topic);
    CheckBox cb = (CheckBox) convertView.findViewById(R.id.cbList_hook);
    ImageView iv = (ImageView) convertView.findViewById(R.id.ivList_delete);

    tv.setText(this.arrayList.get(position));

    iv.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

        }
    });

    return convertView;
}

1 个答案:

答案 0 :(得分:0)

android:descendantFocusability="blocksDescendants"添加到list_items_layout的根目录。