我在哪里把我的字符串数组项目在主Java中,使他们可点击?

问题描述:

我目前正在寻找添加重力抽屉到我的应用程序,并一直在遵循教程。我的问题是我创建了一个字符串数组与RES /价值/串项目列表和需要知道如何将它们添加到菜单,并获得项目打开新的活动。以下任何一个帮助代码都可以。我在哪里把我的字符串数组项目在主Java中,使他们可点击?

字符串:

<string-array name="items"> 
    <item>Home</item> 
    <item>About</item> 
    <item>LinkedIn</item> 
    <item>Twitter</item> 
    <item>Facebook</item> 
    <item>Contact</item> 
</string-array> 

Java代码:

public class MainActivity extends Activity { 

     private String[] drawerListViewItems; 
     private DrawerLayout drawerLayout; 
     private ListView drawerListView; 
     private ActionBarDrawerToggle actionBarDrawerToggle; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      // get list items from strings.xml 
      drawerListViewItems = getResources().getStringArray(R.array.items); 
      // get ListView defined in activity_main.xml 
      drawerListView = (ListView) findViewById(R.id.left_drawer); 

      // Set the adapter for the list view 
      drawerListView.setAdapter(new ArrayAdapter<String>(this, 
        R.layout.drawer_listview_item, drawerListViewItems)); 

      // 2. App Icon 
      drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 

      // 2.1 create ActionBarDrawerToggle 
      actionBarDrawerToggle = new ActionBarDrawerToggle(
        this,     /* host Activity */ 
        drawerLayout,   /* DrawerLayout object */ 
        R.drawable.ic_drawer, /* nav drawer icon to replace 'Up' caret */ 
        R.string.drawer_open, /* "open drawer" description */ 
        R.string.drawer_close /* "close drawer" description */ 
      ); 

      // 2.2 Set actionBarDrawerToggle as the DrawerListener 
      drawerLayout.setDrawerListener(actionBarDrawerToggle); 

      // 2.3 enable and show "up" arrow 
      getActionBar().setDisplayHomeAsUpEnabled(true); 

      // just styling option 

      drawerListView.setOnItemClickListener(new DrawerItemClickListener()); 
     } 

     @Override 
     protected void onPostCreate(Bundle savedInstanceState) { 
      super.onPostCreate(savedInstanceState); 
      // Sync the toggle state after onRestoreInstanceState has occurred. 
      actionBarDrawerToggle.syncState(); 
     } 

     @Override 
     public void onConfigurationChanged(Configuration newConfig) { 
      super.onConfigurationChanged(newConfig); 
      actionBarDrawerToggle.onConfigurationChanged(newConfig); 
     } 

     @Override 
     public boolean onOptionsItemSelected(MenuItem item) { 

      // call ActionBarDrawerToggle.onOptionsItemSelected(), if it returns true 
      // then it has handled the app icon touch event 

      if (actionBarDrawerToggle.onOptionsItemSelected(item)) { 
       return true; 
        } 

      { 

       } 



      return super.onOptionsItemSelected(item); 
     } 

     private class DrawerItemClickListener implements ListView.OnItemClickListener { 
      @Override 
      public void onItemClick(AdapterView parent, View view, int position, long id) { 
       Toast.makeText(MainActivity.this, ((TextView)view).getText(), Toast.LENGTH_LONG).show(); 
       drawerLayout.closeDrawer(drawerListView); 

      } 
     } 
+0

检查此链接:http://www.compiletimeerror.com/2013/08/androidoptions-menu-in-android-example.html#.Vji6uaIlKi4 – Rama

+1

您正在使用ArrayAdapter,心不是已经绘制你的字符串阵列? – Nanoc

+0

从ArrayAdapter创建自己的自定义类派生并重写 公共无效onItemClick(适配器视图>适配器视图,查看视图,INT位置,长ID)我在哪里可以把代码打开一个新的活动 – Shilpi

似乎您试图创建项目列表的简单drawler。 而不是使用自定义布局,你可以使用这样一个更简单的布局来检查它。

drawerListView.setAdapter(new ArrayAdapter<String>(
      this, 
      android.R.layout.simple_list_item_activated_1, 
      android.R.id.text1, 
      drawerListViewItems)); 
+0

,对不起初学者 –

+0

@SuperSasquatch取代你'drawerListView.setAdapter'行与我的。 – bhdrkn