导航抽屉内的列表视图不响应项目单击 android

Listview inside Navigational Drawer Not responding to item click android

我正在使用 DrawerLayout,它有 Listview

当我点击 Listview 项目时,它没有响应点击(不启动另一个 activity)

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    //requestWindowFeature(Window.FEATURE_NO_TITLE);

    final ActionBar actionBar=getActionBar();
    actionBar.setIcon(null);
    actionBar.setTitle("");

    setContentView(R.layout.main_activity);

    // Custom ActionBar initializations.
    getActionBar().setCustomView(R.layout.action_bar_custom);
    getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_HOME_AS_UP);
    getActionBar().setDisplayUseLogoEnabled(true);
    getActionBar().setDisplayShowHomeEnabled(true);
    getActionBar().setDisplayShowCustomEnabled(true);
    //getActionBar().setIcon(R.drawable.ic_drawer);




    // Remember me.
    sharedPref=getSharedPreferences("myPref", MODE_PRIVATE);
    editor=sharedPref.edit();


    //Listview
    mDrwawerList=(ListView)findViewById(R.id.list_slidermenu);
    listDataHeader = new ArrayList<HashMap<String,String>>();
    listDataHeader_temp = new ArrayList<String>();
    navigational_adapter=new NavigationListAdapter(MainActivity.this, new ArrayList<HashMap<String,String>>());

    mDrawerLayout=(DrawerLayout)findViewById(R.id.drawer_layout);

    mDrawerToggle=new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.nav_btn,0, 0){
        public void onDrawerClosed(View drawerView){
            getActionBar().setTitle(mTitle);
            invalidateOptionsMenu();
        }

        public void onDrawerOpened(View drawerView) {
            getActionBar().setTitle(mDrawerTitle);
            invalidateOptionsMenu();
        }
    };

    mDrawerLayout.setDrawerListener(mDrawerToggle);

    mDrwawerList.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // TODO Auto-generated method stub


            TextView txtCategoryName=(TextView)view.findViewById(R.id.txt_category);
            String category_name=txtCategoryName.getText().toString();

            Log.e("category_name", "karjeevcategory_name "+category_name);

            if (category_name.equals("Home")) {

            }
            else if (category_name.equals("Diamond of the Week")) {

                            }
            else if (category_name.equals("About Us")) {

            }
            else if (category_name.equals("FAQ")) {

                Intent intent=new Intent(MainActivity.this,FAQActivity.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                startActivity(intent);

            }
            else if (category_name.equals("Press & Download")) {

            }
            else if (category_name.equals("Contact Us")) {

            }


        }
    });    


    new PerformGetCategory().execute();

}

用这个替换您现有的代码,并在列表视图的特定位置案例中创建一个 Intent,如果 FAQ 项目位于第 5 个位置,则在案例 4 中创建 Intent:

mDrawerList.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
                displayView(position);
            }
        });

在 displayView(int position) 里面保持这个:

private void displayView(int position) {
        switch (position) {
            case 0:
                break;
            case 1:
                break;
            case 2:
                break;
            case 3:
                break;
            case 4:
                 Intent intent=new Intent(MainActivity.this,FAQActivity.class);
                 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                 startActivity(intent);
                 break;
            case 5:
                break;
            case 6:
                break;
            default:
                break;
        }
                }

希望这能解决您的问题。

我从头到尾解决了我的问题...

存在布局问题,因此 listview 无法处理点击 ..

我将我的 litsview 代码粘贴到 DrawerLayout

中的其他布局代码的底部