два ListView не работают с NavigationDrawer

У меня есть два ListView в моем NavigationDrawer, оба они отображаются на моем NavigationDrawer, но я столкнулся с проблемой, когда пользователь хочет щелкнуть элемент из одного ListView, это не работает, вот как я вызываю 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);
 }   

поэтому мой вопрос, можно ли вызвать «onItemClick» с помощью switch (v.getId())? и если это возможно, может ли кто-нибудь помочь мне показать, где ошибка? и как мне решить мою проблему? Спасибо.


person Menma    schedule 05.06.2014    source источник


Ответы (1)


R.id.list_terbaru и R.id.list_terkirim — идентификаторы ListView. Однако v — это не ListView, а View предмета. Вместо этого включите идентификатор AdapterView (который в данном случае является одним из ваших ListView):

switch (arg0.getId()) {

Если в коде нет другой ошибки (не удалось найти), это должно решить проблему.

Но рассматривали ли вы возможность создания разных слушателей для списков? Таким образом, вам вообще не придется переключаться.

person fabian    schedule 05.06.2014
comment
используя этот код switch (arg0.getId()), спасибо за помощь :) - person Menma; 05.06.2014