导航抽屉与ListView。 ListView上的空点异常

时间:2015-12-04 16:01:54

标签: android xml listview android-listview navigation-drawer

我正在关注此tutorial,以获取抽屉菜单和标签布局。所以我已经为菜单创建了xml文件,但我不会使用item而是ListView。这是菜单的xml代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<ListView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:id="@+id/listView"
   android:layout_gravity="center" />
</menu>

以下是活动的xml代码:

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/orange"
    android:id="@+id/toolbar"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:title="Drawer With Swipe Tabs" />



<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:id="@+id/drawerLayout"
    >

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

    </FrameLayout>



    <android.support.design.widget.NavigationView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:id="@+id/shitstuff"
        app:itemTextColor="@color/black"
        app:menu="@menu/drawermenu"
        android:layout_marginTop="-24dp"
        />

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

这是MainActivity java代码:

public class MainActivity extends AppCompatActivity {
ArrayAdapter<Model> adapter;
List<Model> list = new ArrayList<>();

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

    ListView listView = (ListView)findViewById(R.id.listView);
    adapter = new MyAdapter(this, getModel());
    listView.setAdapter(adapter);

}

private List getModel() {
    list.add(new Model("ISPEZIONE"));
    return list;
}
}

我在ListView上有null point exeption。所以我知道因为有问题(我有相同的片段问题)但我不能用菜单解决它。我该怎么办?

1 个答案:

答案 0 :(得分:0)

活动视图层次结构中没有ListView,因此findViewById返回null(导致崩溃)。如果你想使用ListView而不是NavigationView,只需用包含ListView的片段/ FrameLayout替换NavigationView元素。