Java Android导航抽屉级别

Java Android导航抽屉级别,java,android,arrays,layout,navigation-drawer,Java,Android,Arrays,Layout,Navigation Drawer,我在Android的导航抽屉上遇到了一些问题。以下是我的代码: public class NavigationDrawer extends FragmentActivity { private String[] drawerListViewItems; private DrawerLayout drawerLayout; private ListView drawerListView; private ActionBarDrawerToggle actionBarDrawerToggle; p

我在Android的导航抽屉上遇到了一些问题。以下是我的代码:

public class NavigationDrawer extends FragmentActivity {
private String[] drawerListViewItems;
private DrawerLayout drawerLayout;
private ListView drawerListView;
private ActionBarDrawerToggle actionBarDrawerToggle;

protected DrawerLayout fullLayout;
protected FrameLayout actContent;

@Override
public void setContentView(final int layoutResID) {

    fullLayout = (DrawerLayout) getLayoutInflater().inflate(
            R.layout.navigation_drawer, null); // Your base layout here
    actContent = (FrameLayout) fullLayout.findViewById(R.id.act_content);
    getLayoutInflater().inflate(layoutResID, actContent, true);
    super.setContentView(fullLayout);
    drawerListViewItems = getResources().getStringArray(R.array.items);
    drawerListView = (ListView) findViewById(R.id.left_drawer);
    drawerListView.setAdapter(new ArrayAdapter<String>(this,
            R.layout.drawer_listview_item, drawerListViewItems));
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

    actionBarDrawerToggle = new ActionBarDrawerToggle(this,
    drawerLayout, 
    R.drawable.ic_drawer, 
    R.string.drawer_open, 
    R.string.drawer_close 
    );
    drawerLayout.setDrawerListener(actionBarDrawerToggle);
    getActionBar().setDisplayHomeAsUpEnabled(true);
    drawerLayout.setDrawerShadow(R.drawable.drawer_shadow,
            GravityCompat.START);
    drawerListView.bringToFront();
    drawerListView.setOnItemClickListener(new DrawerItemClickListener());
}

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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    actionBarDrawerToggle.syncState();
}

private class DrawerItemClickListener implements
        ListView.OnItemClickListener {
    @Override
    public void onItemClick(AdapterView parent, View view, int position,
            long id) {
        switch (position) {
        }
        drawerLayout.closeDrawer(drawerListView);
    }
}
}
和我的xml文件:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
    android:id="@+id/left_drawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="#111"
    android:divider="#CCCCCC"
    android:dividerHeight="0.5dp"
    android:paddingLeft="16dp"
    android:paddingRight="16dp" />

<FrameLayout
    android:id="@+id/act_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
</FrameLayout>

</android.support.v4.widget.DrawerLayout>
和字符串文件,我在其中声明导航抽屉项的单词:

<string-array name="items">
    <item>Dashboard</item>
    <item>Account</item>
    <item>Setting</item>
    <item>Recurring</item>
    <item>Budget</item>
</string-array>
但有了这些代码,导航抽屉级别只有一个。我想做的是,在仪表板、设置和预算下仍然会有子项

我想知道如何修改它,以便导航抽屉可以容纳更多级别的项目

提前谢谢

编辑

和我的字符串文件:

<resources>
<string name="app_name">Navigation Drawer Example</string>

<string name="createEventDrawer">Create Event</string>
<string name="analyzeEventDrawer">Analyze Event</string>  
<string-array name="analyzeEvent_array">
    <item>Past Event Population</item>
    <item>Buffer</item>     
</string-array>
<string name="qrCodeDrawer">QR Code Scan</string>

<string name="drawer_open">Open navigation drawer</string>
<string name="drawer_close">Close navigation drawer</string>
<string name="action_websearch">Web search</string>
<string name="app_not_available">Sorry, there\'s no web browser available</string>
<string name="_11">11</string>
步骤:

将ListView更改为Expandablelistview。 为所需的组项添加子项。
示例:

您是否介意提供一些可以在我的上述解决方案中实现的代码示例?@IWasSoLost,请检查我已添加示例链接谢谢,但是否有任何方法可以将selectItem更改为使用意图而不是片段?我也选择了太阳和月亮,但之后什么也没发生。它应该以这种方式工作吗?还有什么方法可以像我以前在导航抽屉项目上所做的那样使用开关吗?因为我不太懂你的密码是否要打开新活动?那就用心去做吧。代码并不复杂,只需逐行映射代码即可。你很容易理解
<resources>
<string name="app_name">Navigation Drawer Example</string>

<string name="createEventDrawer">Create Event</string>
<string name="analyzeEventDrawer">Analyze Event</string>  
<string-array name="analyzeEvent_array">
    <item>Past Event Population</item>
    <item>Buffer</item>     
</string-array>
<string name="qrCodeDrawer">QR Code Scan</string>

<string name="drawer_open">Open navigation drawer</string>
<string name="drawer_close">Close navigation drawer</string>
<string name="action_websearch">Web search</string>
<string name="app_not_available">Sorry, there\'s no web browser available</string>
<string name="_11">11</string>