two ListView not working on NavigationDrawer
-
21-12-2019 - |
문제
I have two ListView
in my NavigationDrawer
, both of them is displayed on my NavigationDrawer
, but I face a problem, when user want to click an item from one ListView
, it does't work, this is how I call setOnItemClickListener
from my ListView
:
list_terbaru=(ListView)findViewById(R.id.list_terbaru);
list_terkirim=(ListView)findViewById(R.id.list_terkirim);
list_terbaru.setOnItemClickListener(new SlideMenuClickListener());
list_terkirim.setOnItemClickListener(new SlideMenuClickListener());
private class SlideMenuClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position, long arg3) {
switch (v.getId()) {
case R.id.list_terbaru:
id=((TextView)v.findViewById(R.id.nomor_registrasi)).getText().toString();
a=id;
ModelHelper.onModel(me);
getFragmentManager().beginTransaction().replace(R.id.frame_container,new PemegangPolis()).commit();
selectItem(position);
break;
case R.id.list_terkirim:
id=((TextView)v.findViewById(R.id.no_polis)).getText().toString();
a="";
ModelHelper.onModel(me);
getFragmentManager().beginTransaction().replace(R.id.frame_container,new PemegangPolis()).commit();
selectItembaru(position);
}
}
}
private void selectItem(int position) {
ModelHelper.onModel(me);
ModelHelper.onRetrieve(helper,id,me,position,model,SelectPemegang,SelectTertanggung,SelectUA,SelectDi,SelectDA,SelectDP);
getFragmentManager().beginTransaction().replace(R.id.frame_container,new PemegangPolis()).commit();
// helper.close();selectItem
mDrawerLayout.closeDrawer(SlidingMenu);
}
private void selectItembaru(int position) {
ModelHelper.onModel(me);
ModelHelper.onRetrieve(helper,id,me,position,model2,SelectPemegang,SelectTertanggung,SelectUA,SelectDi,SelectDA,SelectDP);
getFragmentManager().beginTransaction().replace(R.id.frame_container,new PemegangPolis()).commit();
// helper.close();selectItem
mDrawerLayout.closeDrawer(SlidingMenu);
}
so my question, is it possible to call 'onItemClick' with switch (v.getId())
? and if it is possible, can anyone help me to show where is fault? and how I can solve my problem? thank you.
해결책
R.id.list_terbaru
and R.id.list_terkirim
are the ids of the ListView
s. However v
is not the ListView
, but the View
of the item. Switch on the id of the AdapterView
(which is one of your ListView
s in this case) instead:
switch (arg0.getId()) {
If there is no other error in the code (could not find one), this should solve the problem.
But have you considered creating different listeners for the lists? That way you wouldn't have to switch at all.