我的 NavigationDrawer
中有两个 ListView
,它们都显示在我的 NavigationDrawer
上,但是当用户想要时,我面临一个问题单击一个 ListView
中的一项,它不起作用,这就是我从 ListView
调用 setOnItemClickListener
的方式:
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”?如果可能的话,任何人都可以帮我指出问题出在哪里吗?我该如何解决我的问题?谢谢。
最佳答案
R.id.list_terbaru
和 R.id.list_terkirim
是 ListView
的 id。但是,v
不是 ListView
,而是项目的 View
。打开 AdapterView 的 id(在本例中是您的 ListView 之一):
switch (arg0.getId()) {
如果代码中没有其他错误(找不到错误),这应该可以解决问题。
但是您是否考虑过为列表创建不同的监听器?这样您就根本不需要切换。
关于java - 两个 ListView 不适用于 NavigationDrawer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24050897/