我的ListView
中有两个NavigationDrawer
,我的NavigationDrawer
上都显示了ListView
,但当用户想要点击{{1}中的某个项目时,我遇到了问题},它不起作用,这是我从setOnItemClickListener
调用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);
}
所以我的问题是,是否可以使用switch (v.getId())
调用'onItemClick'?如果有可能,任何人都可以帮我展示哪里有错?以及如何解决我的问题?谢谢。
答案 0 :(得分:2)
R.id.list_terbaru
和R.id.list_terkirim
是ListView
的ID。但v
不是ListView
,而是项目的View
。改为启用AdapterView
的ID(在这种情况下,这是ListView
之一):
switch (arg0.getId()) {
如果代码中没有其他错误(找不到),这应该可以解决问题。
但您考虑过为列表创建不同的侦听器吗?这样你根本不需要切换。