Java Android导航抽屉故障
我已尝试按照以下步骤创建导航抽屉。当我构建并运行时,它只是崩溃了。Java Android导航抽屉故障,java,android,android-fragments,navigation-drawer,Java,Android,Android Fragments,Navigation Drawer,我已尝试按照以下步骤创建导航抽屉。当我构建并运行时,它只是崩溃了。 这是我的日志: at com.infintro.keondrae.everythingminecraft.FragmentNavigationDrawer.setupDrawerConfiguration(FragmentNavigationDrawer.java:63) at com.infintro.keondrae.everythingminecraft.MainActivity.onCreate(Main
这是我的日志:
at com.infintro.keondrae.everythingminecraft.FragmentNavigationDrawer.setupDrawerConfiguration(FragmentNavigationDrawer.java:63)
at com.infintro.keondrae.everythingminecraft.MainActivity.onCreate(MainActivity.java:22)
从logcat中,我发现MainActivity的第22行和FragmentNavigationDrawer的第63行有一个错误。main活动的第22行是布局的onCreate
主要活动
public class MainActivity extends FragmentActivity {
private FragmentNavigationDrawer dlDrawer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Find our drawer view
dlDrawer = (FragmentNavigationDrawer) findViewById(R.id.drawer_layout);
// Setup drawer view
**Line 22** dlDrawer.setupDrawerConfiguration((ListView) findViewById(R.id.lvDrawer),
R.layout.drawer_nav_item, R.id.flContent);
// Add nav items
dlDrawer.addNavItem("Welcome", "Welcome Fragment", Welcome.class);
dlDrawer.addNavItem("Blueprints", "Blueprints Fragment", Blueprints.class);
dlDrawer.addNavItem("Chat", "Chat Fragment", Chat.class);
dlDrawer.addNavItem("Redstone", "Redstone Fragment", Redstone.class);
dlDrawer.addNavItem("Tutorials", "Tutorials Fragment", Tutorials.class);
dlDrawer.addNavItem("Gameplay", "Gameplay Fragment", Gameplay.class);
dlDrawer.addNavItem("Maps/Mods", "Maps/Mods Fragment", MapsMods.class);
dlDrawer.addNavItem("Wallpapers", "Wallpapers Fragment", Wallpapers.class);
dlDrawer.addNavItem("About", "About Fragment", About.class);
// Select default
if (savedInstanceState == null) {
dlDrawer.selectDrawerItem(0);
}
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// If the nav drawer is open, hide action items related to the content
if (dlDrawer.isDrawerOpen()) {
// Uncomment to hide menu items
// menu.findItem(R.id.mi_test).setVisible(false);
}
return super.onPrepareOptionsMenu(menu);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
// Uncomment to inflate menu items to Action Bar
// inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// The action bar home/up action should open or close the drawer.
// ActionBarDrawerToggle will take care of this.
if (dlDrawer.getDrawerToggle().onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
dlDrawer.getDrawerToggle().syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Pass any configuration change to the drawer toggles
dlDrawer.getDrawerToggle().onConfigurationChanged(newConfig);
}
FragmentNavigationDrawer.java
这是其中的一部分。第63行是getActionBar()
//设置抽屉配置((ListView)findViewById(R.id.lvDrawer)、R.layout.drawer\u列表\u项、R.id.flContent);
公共无效设置抽屉配置(ListView抽屉列表视图、int抽屉属性、int抽屉内容){
//设置导航项数组
paurernavitems=newarraylist();
//设置列表视图的适配器
DrawerDatapter=newArrayAdapter(getActivity(),drawerItemRes,newArrayList());
this.drawerContainerRes=drawerContainerRes;
//设置抽屉列表视图和相关适配器
LV抽屉=抽屉列表视图;
lvDrawer.setAdapter(drawerAdapter);
//设置项侦听器
lvDrawer.setOnItemClickListener(新的FragmentDrawerItemListener());
//ActionBarDrawerToggle将适当的交互连接在一起
//在滑动抽屉和操作栏应用程序图标之间
抽屉切换=设置抽屉切换();
设置抽屉链接器(抽屉切换);
//当抽屉打开时,设置覆盖主要内容的自定义阴影
setDrawerShadow(R.drawable.drawer_shadow,GravityCompat.START);
//设置操作按钮
getActionBar().setDisplayHomeAsUpEnabled(true);
**第63行**getActionBar().setHomeButtonEnabled(true);
}
布局:
主要活动
<com.infintro.keondrae.everythingminecraft.FragmentNavigationDrawer
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The main content view -->
<FrameLayout
android:id="@+id/flContent"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- The navigation drawer -->
<ListView android:id="@+id/lvDrawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/darker_gray"
android:dividerHeight="0dp"
android:background="@android:color/background_light"
/>
出票人资产净值项目
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/list_selector_background"
android:gravity="center_vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textSize="16sp"
android:textColor="#111" />
有人能帮我吗?您正在使用这一行“DrawerDatapter=new ArrayAdapter(getActivity(),drawerItemRes,new ArrayList());”在这个“setupDrawerConfiguration”方法中,但在github文件中,它位于这个方法的“AddNaviItem”中。因此,请输入此方法,然后再试一次,好吗。@SurenderKumar谢谢,但我试图将它们移动到下的“addNavItem”方法,但仍然崩溃。如果需要,您可以将此链接用于导航抽屉-@SurenderKumar谢谢,我将尝试此链接。
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/list_selector_background"
android:gravity="center_vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textSize="16sp"
android:textColor="#111" />