문제

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 ListViews. However v is not the ListView, but the View of the item. Switch on the id of the AdapterView (which is one of your ListViews 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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top