(Android) Список просмотра по элементу щелкнул не срабатывает - PullRequest
1 голос
/ 17 мая 2011

Я работаю над приложением списка покупок для изучения Android, но не могу понять, как получить элементы в ListView для запуска события onClick в ItemClickListener, который я установил в просмотре списка. Метод renderList () вызывается из метода onResume (), который извлекает список продуктов из базы данных и заполняет ListView. Почему эта реализация не работает; тост не отображается, когда я нажимаю list_item?

Элемент list_item является представлением CheckBox.

@Override
protected void onResume() {
  super.onResume();
  renderList();
}

protected void renderList(){

    try {
        dbHelper = new DbHelper(getApplicationContext());
        db = dbHelper.getReadableDatabase();
        cursor = db.query(DbHelper.TABLE, null, null, null, null, null, DbHelper.C_ID + " DESC");
        startManagingCursor(cursor);
        adapter = new SimpleCursorAdapter(this, R.layout.list_item, cursor, FROM, TO);

        groceriesList = (ListView)findViewById(R.id.listView1);
        groceriesList.setAdapter(adapter);
        groceriesList.setOnItemClickListener(clickListen);


     } catch (Exception e) {
         Log.d(TAG, "RenderList Error: ",e);
     }
}

private OnItemClickListener clickListen = new OnItemClickListener(){

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

};

Ответы [ 2 ]

3 голосов
/ 17 мая 2011

Я предполагаю, что у вас есть элементы в строках списка, которые можно фокусировать.Я бы посмотрел на установку this на false или на привязку элементов, просто установите их атрибуты xml на android: focusable = "false"

1 голос
/ 17 мая 2011

Возможно, вы захотите использовать ListActivity, а затем просто переопределить метод onListItemClick.Другая проблема, вероятно, заключается в том, что вы помещаете в представление списка.См. ListView с интерактивным / редактируемым виджетом для обзора, но если у вас есть какие-либо фокусируемые элементы в виде списка, у вас возникнут проблемы с его правильной регистрацией кликов.

...