Java 在抽屉列表中添加多个标题
我想在抽屉列表中添加多个标题。现在我只能添加一个标题。如何在抽屉列表中添加标题(如类别) MainActivity.javaJava 在抽屉列表中添加多个标题,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
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>