Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在抽屉列表中添加多个标题_Java_Android_Xml_Arraylist_Android Listview - Fatal编程技术网

Java 在抽屉列表中添加多个标题

Java 在抽屉列表中添加多个标题,java,android,xml,arraylist,android-listview,Java,Android,Xml,Arraylist,Android Listview,我想在抽屉列表中添加多个标题。现在我只能添加一个标题。如何在抽屉列表中添加标题(如类别) MainActivity.java package com.pixalstudio.javaclasses; import android.content.res.Configuration; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; impor

我想在抽屉列表中添加多个标题。现在我只能添加一个标题。如何在抽屉列表中添加标题(如类别)

MainActivity.java

    package com.pixalstudio.javaclasses;

import android.content.res.Configuration;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;


public class MainActivity extends ActionBarActivity implements AdapterView.OnItemClickListener {

    private Toolbar toolbar;
    ListView mDrawerList;
    DrawerLayout mDrawerLayout;
    ActionBarDrawerToggle mDrawerToggle;
    String[] mDrawerListItems;

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

        ConnectivityManager cManager = (ConnectivityManager) getSystemService(this.CONNECTIVITY_SERVICE);
        NetworkInfo nInfo = cManager.getActiveNetworkInfo();
        if (nInfo != null && nInfo.isConnected()) {
            Toast.makeText(this, "Newtwrok Available", Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(this, "Network Not Available", Toast.LENGTH_LONG).show();
        }


        toolbar = (Toolbar) findViewById(R.id.app_bar);
        setSupportActionBar(toolbar);
        LayoutInflater inflater = getLayoutInflater();
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
        mDrawerList = (ListView) findViewById(R.id.drawerList);
        mDrawerListItems = getResources().getStringArray(R.array.drawer_list);


        ViewGroup header_news = (ViewGroup) inflater.inflate(R.layout.nav_header, mDrawerList, false);
        mDrawerList.addHeaderView(header_news, null, false);


        mDrawerList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mDrawerListItems));
        mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                int editPosition = position + 1;
                Toast.makeText(MainActivity.this, "You Have Selected " + editPosition, Toast.LENGTH_SHORT).show();
                mDrawerLayout.closeDrawer(mDrawerList);
            }
        });

        mDrawerToggle = new ActionBarDrawerToggle(this,
                mDrawerLayout,
                toolbar,
                R.string.drawer_open,
                R.string.drawer_close) {
            @Override
            public void onDrawerClosed(View drawerView) {
                super.onDrawerClosed(drawerView);
                invalidateOptionsMenu();
                syncState();
            }

            @Override
            public void onDrawerOpened(View drawerView) {
                super.onDrawerOpened(drawerView);
                invalidateOptionsMenu();
                syncState();
            }
        };
        mDrawerLayout.setDrawerListener(mDrawerToggle);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setHomeButtonEnabled(true);
        mDrawerToggle.syncState();
    }

    @Override
    public void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        mDrawerToggle.syncState();
    }

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {
            case android.R.id.home: {
                if (mDrawerLayout.isDrawerOpen(mDrawerList)) {
                    mDrawerLayout.closeDrawer(mDrawerList);
                } else {
                    mDrawerLayout.openDrawer(mDrawerList);
                }
                return true;
            }
            default:
                return super.onOptionsItemSelected(item);
        }


    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        int editPosition = position + 1;
        Toast.makeText(MainActivity.this, "You Have Selected " + editPosition, Toast.LENGTH_SHORT).show();
        mDrawerLayout.closeDrawer(mDrawerList);
    }
}
package com.pixalstudio.javaclasses;
导入android.content.res.Configuration;
导入android.net.ConnectivityManager;
导入android.net.NetworkInfo;
导入android.os.Bundle;
导入android.support.v4.widget.DrawerLayout;
导入android.support.v7.app.ActionBarActivity;
导入android.support.v7.app.ActionBarDrawerToggle;
导入android.support.v7.widget.Toolbar;
导入android.view.LayoutInflater;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.Toast;
公共类MainActivity扩展ActionBarActivity实现AdapterView.OnItemClickListener{
专用工具栏;
ListView mDrawerList;
抽屉布局mDrawerLayout;
ActionBarDrawerToggle mDrawerToggle;
字符串[]mDrawerListItems;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ConnectivityManager cManager=(ConnectivityManager)getSystemService(this.CONNECTIVITY_服务);
NetworkInfo nInfo=cManager.getActiveNetworkInfo();
if(nInfo!=null&&nInfo.isConnected()){
Toast.makeText(此“Newtwrok可用”,Toast.LENGTH_LONG.show();
}否则{
Toast.makeText(此“网络不可用”,Toast.LENGTH_LONG.show();
}
工具栏=(工具栏)findViewById(R.id.app\u栏);
设置支持操作栏(工具栏);
LayoutInflater充气机=getLayoutInflater();
mDrawerLayout=(抽屉布局)findViewById(R.id.DroperLayout);
mDrawerList=(ListView)findViewById(R.id.DroperList);
mDrawerListItems=getResources().getStringArray(R.array.drawer\u列表);
视图组标题\新闻=(视图组)充气器。充气(R.layout.nav\标题,mDrawerList,false);
mDrawerList.addHeaderView(header\u news,null,false);
setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_item_1,mDrawerList项));
mDrawerList.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
int editPosition=位置+1;
Toast.makeText(MainActivity.this,“您已选择”+editPosition,Toast.LENGTH_SHORT.show();
mDrawerLayout.closeDrawer(mDrawerList);
}
});
MDRAWERTOGLE=新操作BARDRAWERTOGLE(此,
mDrawerLayout,
工具栏,
R.string.drawer\u打开,
右弦抽屉(U关闭){
@凌驾
图纸上的公共空白已关闭(视图抽屉视图){
super.onDrawerClosed(抽屉视图);
无效操作菜单();
syncState();
}
@凌驾
打开图纸上的公共空白(视图抽屉视图){
super.onDrawerOpened(抽屉视图);
无效操作菜单();
syncState();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
设置支持操作栏(工具栏);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
mDrawerToggle.syncState();
}
@凌驾
后期创建时的公共无效(捆绑保存状态){
super.onPostCreate(savedInstanceState);
mDrawerToggle.syncState();
}
@凌驾
公共无效OnConfiguration已更改(配置newConfig){
super.onConfigurationChanged(newConfig);
mDrawerToggle.syncState();
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(右菜单菜单菜单主菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
案例android.R.id.home:{
if(mDrawerLayout.isDrawerOpen(mDrawerList)){
mDrawerLayout.closeDrawer(mDrawerList);
}否则{
mDrawerLayout.openDrawer(mDrawerList);
}
返回true;
}
违约:
返回super.onOptionsItemSelected(项目);
}
}
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
int editPosition=位置+1;
Toast.makeText(MainActivity.this,“您已选择”+editPosition,Toast.LENGTH_SHORT.show();
mDrawerLayout.closeDrawer(mDrawerList);
}
}
activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include
        android:id="@+id/app_bar"
        layout="@layout/app_bar">

    </include>


    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawerLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

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

        </FrameLayout>


        <ListView
            android:id="@+id/drawerList"
            android:layout_width="240dp"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:background="#CE93D8">

        </ListView>

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

nav_header.xml

android:id=“@+id/head1”
xmlns:android=”http://schemas.android.com/apk/res/android"
android:layout\u width=“匹配父项”
android:layout\u height=“包装内容”
android:background=“?attr/colorPrimaryDark”
android:padding=“16dp”
android:theme=“@style/ThemeOverlay.AppCompat.Dark”
android:orientation=“垂直”
android:gravity=“bottom”>
我试图寻找解决方案,但每次我都弄乱了代码。有人能给我一个完美的解决方案吗?提前谢谢。:)

这就是我想要的标题1和标题2


你到底想做什么?
ListView
的标题只是一个常规视图。你想放什么就放什么:甚至是几份页眉。@Foxinsocks我想得到的是李
    android:id="@+id/head1"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimaryDark"
    android:padding="16dp"
    android:theme="@style/ThemeOverlay.AppCompat.Dark"
    android:orientation="vertical"
    android:gravity="bottom">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Header 1"
        android:textColor="@android:color/white"
        android:textAppearance="@style/TextAppearance.AppCompat.Body1"/>

</LinearLayout>