/ / Dlaczego OnClickListener elementów ListView w szufladzie nawigacyjnej nigdy się nie uruchamia? - Android, android-listview, adapter, onitemclicklistener

Dlaczego usługa OnClickListener z elementów ListView w szufladzie nawigacji nigdy nie uruchamia się? - Android, Android-listview, adapter, onitemclicklistener

Tworzę aplikację na Androida z szufladą nawigacji.

Miałem problem z OnItemClickListener, jakoś nie można go w ogóle ogrzać.

Wszystkie przedmioty przychodzą do ListView poprawnie, ale nigdy nie uruchamia żadnych działań.

ustawiłem OnItemClickListener jak sugeruje strona dla programistów Androida, bez powodzenia.

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();
}
}

Używam prawie tego samego kodu w innej części mojej aplikacji, aby wyświetlać wiadomości itp. I OnItemClickListener działa poprawnie w innych miejscach.

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;
}

Jaka część jest błędna, czy muszę zrobić zupełnie inaczej?

Odpowiedzi:

0 dla odpowiedzi № 1

Spróbuj dodać android:focusable="false" na twoim XML dla ListView oraz na głównym elemencie układu elementu szuflady