2015-06-15 34 views
0

我已將以下代碼用於我的navigation drawer,該代碼通過包括佈局和創建對象以及調用函數在多個activities中使用幷包含在其中。我想添加功能,當一個項目點擊,它開始新的活動。在抽屜導航中創建可點擊列表視圖的項目

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/drawerLayout"> 

     <FrameLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/drawerFrame"> 
     </FrameLayout> 

     <ListView 
      android:layout_width="240dp" 
      android:background="#eaeaea" 
      android:divider="@null" 
      android:layout_height="match_parent" 
      android:entries="@array/drawerList" 
      android:id="@+id/drawerlist" 
      android:layout_gravity="right" 
      /> 

</android.support.v4.widget.DrawerLayout> 



public class DrawerNav { 


    private Activity drawerAct; 
    private ListView listView; 
    private String[] drawerArray; 
    private ActionBarDrawerToggle drawerListener; 
    private DrawerLayout drawerLayout; 

    public DrawerNav(Activity activity){ 
     drawerAct = activity; 
    } 


    public void drawerAction() { 

     final ImageView setting = (ImageView) drawerAct.findViewById(R.id.setting); 
     final ImageView sepTitle = (ImageView) drawerAct.findViewById(R.id.seperatorTitle); 

//drawer navigation 
     drawerLayout = (DrawerLayout) drawerAct.findViewById(R.id.drawerLayout); 
     drawerArray = drawerAct.getResources().getStringArray(R.array.drawerList); 
     listView = (ListView) drawerAct.findViewById(R.id.drawerlist); 
     listView.setAdapter(new ArrayAdapter<>(this.drawerAct, R.layout.list_item_layout, drawerArray)); 


     drawerListener = new ActionBarDrawerToggle(this.drawerAct, drawerLayout, null, R.string.openD, R.string.closeD) { 

      @Override 
      public void onDrawerSlide(View drawerView, float slideOffset) { 
       setting.setImageResource(R.drawable.settingfocused); 
       sepTitle.setVisibility(View.GONE); 
      } 

      @Override 
      public void onDrawerOpened(View drawerView) { 
       setting.setImageResource(R.drawable.settingfocused); 
      } 

      @Override 
      public void onDrawerClosed(View drawerView) { 

       setting.setImageResource(R.drawable.setting); 
       sepTitle.setVisibility(View.VISIBLE); 
      } 

     }; 
     drawerLayout.setDrawerListener(drawerListener); 
     //drawer navigation 

    } 
} 
+0

+您的活動代碼在哪裏? –

+0

只需在ListView上實現OnItemClick監聽器 – pcj

回答

4

爲您的listView對象實現OnItemClick這樣的監聽器。

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      switch (position){ 
       case 0: 
        //your code to call intent 
        break; 
       case 1: 
        //your code to call intent 
        break; 
        //and so on 
       default: 
        break; 
      } 
      } 
     });