2013-08-21 2 views
1

У меня есть собственный вид списка, в котором у меня есть textview и ImageView. Я установил focusable= false как для textView, так и для ImageView. Для просмотра списка я использую адаптер пользовательского массива, который расширяет ArrayAdapter<ApplicationInfo>. Проблема в том, что элементы списка не запускают прослушиватель кликов для элементов, независимо от того, что. Я знаю, что очень сложно не понять эту проблему, но я потратил почти 2 часа на это, но не мог решить. Вот код:Пользовательский просмотр списка не отвечает на itemClickListener

В onCreate()

list = getListView(); 
list.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { 
      Toast.makeText(MyApp.this, "hello", Toast.LENGTH_SHORT).show(); 
     } 
}); 

Я попробовал так же, но все-таки я не могу получить щелчки.

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    // TODO Auto-generated method stub 
    super.onListItemClick(l, v, position, id); 

    Toast.makeText(this, "dfdsf",Toast.LENGTH_SHORT).show(); 
} 

Возможно, это может быть причиной этой странной проблемы? Я работал с CustomListViews в прошлом, но никогда не сталкивался с этой проблемой.

list.setAdapter(new CustomListAdapter(MyAppsList.this, appList, pManager)); 
+1

Вы можете попробовать добавить 'View.OnClickListener' в метод' getView' вашего адаптера. – Phil

+0

Что такое метод getView()? –

+0

попробуйте сделать изображениеView и TextView сфокусированным true, что может помочь при запуске событий и передачи между просмотром менеджера и их соответствующими родителями зигзагообразно. делая его ложным, возможно, просто остановит поток управления .. и да, как beworker упомянул то, что находится в getView() –

ответ

0

если вы Ussing только деятельность использовать следующий код, чтобы вы перечислите вид:

ListView list = (ListView)findViewById(R.id.your_list); 

И когда вы используете ListActivity вы получите ваш ListView с помощью вызова метода

ListView list = getListView(); 

или вы можете использовать

ListView list = (ListView)findViewById(R.id.your_list) 

Попробуйте использовать findViewById insted of getListView().

HTH.

Смежные вопросы