java - 两个 ListView 不适用于 NavigationDrawer

标签 java android listview navigation-drawer

我的 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_terbaruR.id.list_terkirimListView 的 id。但是,v 不是 ListView,而是项目的 View。打开 AdapterView 的 id(在本例中是您的 ListView 之一):

switch (arg0.getId()) {

如果代码中没有其他错误(找不到错误),这应该可以解决问题。

但是您是否考虑过为列表创建不同的监听器?这样您就根本不需要切换。

关于java - 两个 ListView 不适用于 NavigationDrawer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24050897/

相关文章:

java - Android 双 SIM 卡 -> 更改网络

java - 在 Jooq 中创建 VIEW 语句

java - 如何在Java中从字母表中的 "z"循环回 "a"?

android - 包含带有 android flavor 的库

android - Play 商店中是否有任何支持动态交付功能的 Android 应用程序?

android - Android 中的自定义 ListView ,顶部有图像

wpf - 带有水平项目的 ListView

listview - 如何在FireMonkey中调用数据感知(实时绑定(bind))组件的刷新?

java - 绘画用的 Canvas 是圆形; Canvas 内的随机点

Android库项目——混淆