2010-11-30 5 views
6

У меня этот настраиваемый список. каждая строка содержит изображение и две строки текста один под другим. Я хочу открыть новое действие, когда щелкнут любой элемент списка. но я не могу этого сделать, даже после реализации setOnItemClickListener(). пожалуйста, исправьте меня, если я ошибаюсь. ниже приведен код для списка. PS: Это нормальная деятельность, а не активность списка.android list view clickable problem

l1.setAdapter(new EfficientAdapter(this,eventTitleArray,eventDateArray,eventImageLinkArray)); 
    //l1 = getListView(); 
    l1.setClickable(true); 
    l1.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, 
     int position, long arg3) { 
    Intent intent = new Intent(MainActivity.this, DisplayActivity.class); 
    Bundle b = new Bundle(); 
    b.putString("event", eventTitleArray[position]); 
    intent.putExtras(bundle); 
    startActivity(intent); 

    Toast.makeText(getApplicationContext(), "Opening detailed view for:"+eventTitleArray[position], Toast.LENGTH_SHORT).show(); 


    } 
    }); 

ответ

13

Пожалуйста, посмотрите, есть ли расположение строк все элементы, которые фокусирования. Если элемент ListView содержит файлы с настраиваемыми дочерними элементами, обработчик Listview не будет запущен.

+0

Я попытался сделать это, holder.firstLine.setFocusable (false); \t \t \t holder.secondLine.setFocusable (false); \t \t \t \t holder.imageView.setFocusable (false); но он все еще не работает. firstLine, secondLine и imageView присутствуют в каждой макете строки. – 2010-12-03 12:07:06

2

Я думаю, что есть ошибка в SDK, который предотвращает onItemClickListeners от стрельбы, когда есть фокусируемый вид в представлении ваших деталей.

Так что вы должны попытаться сделать setFocusable (false) во всех Представлениях ваших предметов.

Проблема описана here