2015-08-14 1 views
0

Я создаю приложение для Android с навигационным ящиком.Почему OnClickListener элементов ListView в навигационном ящике никогда не срабатывает?

У меня возникла проблема с OnItemClickListener, так или иначе не получилось.

Все предметы относятся к ListView правильно, но никогда не срабатывают никакие действия.

Я установил OnItemClickListener на странице разработчиков Android, без везения.

MainActivity.java

Private ListView listView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    listView = (ListView)activity.findViewById(R.id.navigationList); 
    setItems(listView); 
} 

private void setItems(ListView listView) { 
    for (int i = 0; i < titles.length; i++) { 
     boolean bSelected = false; 
     if(i==selected) { 
      bSelected = true; 
     } 
     adapter = new DrawerAdapter(context, generateData(items, i, titles[i], subtitles[i], subTexts[i], icons[i], bottomDivider[i], bSelected), layout); 
     listView.setAdapter(adapter); 
    } 

    listView.setOnItemClickListener(new DrawerItemClickListener()); 


    listView.invalidate(); 
    listView.deferNotifyDataSetChanged(); 
} 



private class DrawerItemClickListener implements ListView.OnItemClickListener { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     // THIS NEVER FIRES!!! 
     Toast.makeText(context, "Working", Toast.LENGTH_LONG).show(); 
    } 
} 

Я использую почти один и тот же код на другой части моего приложения, чтобы правильно показывать сообщения и т.д., и OnItemClickListener работы в других местах.

private ArrayList<DrawerRow> generateData(ArrayList<DrawerRow> items, int id, String title, String subtitle, String subText, int icon, boolean bottomDivider, boolean bSelected) { 
    items.add(new DrawerRow(id, title, subtitle, subText, icon, bottomDivider, bSelected)); 
    return items; 
} 

Какая часть неправильная или мне нужно делать совершенно по-другому?

ответ

0

Попробуйте добавить android:focusable="false" на вашем XML для ListView и корневого элемента макета элемента Ящика