我的应用程序给了我一个NullPointerException。为什么?

时间:2017-11-21 20:25:45

标签: java android nullpointerexception

我最近在制作一个待办事项列表应用程序。

应用的OnCreate方法的代码如下所示:

public class MainActivity extends AppCompatActivity {

    ArrayList<String> items;
    ArrayAdapter<String> itemsAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_main);

        ListView todo = (ListView) findViewById(R.id.list);
        items = new ArrayList<>();
        itemsAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1, items);
        todo.setAdapter(itemsAdapter);

        ActionBar ab = getSupportActionBar();
        assert ab != null;
        ab.hide();



    }

但是当我运行应用程序时,它会一直崩溃。

我检查了logcat以查看错误是什么,我得到了以下内容。

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dobleu.hotlists/com.dobleu.hotlists.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference

我不知道为什么我会得到NPE。

我正在使用片段,我正在利用BottomNavigationView在它们之间进行转换。

以下是带有listview的片段的xml:

<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="232dp"
        android:background="@drawable/header1"
        android:scaleType="fitStart"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:id="@+id/imageView"
        android:orientation="vertical"/>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="50dp"
        app:layout_constraintTop_toBottomOf="@+id/imageView"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        android:background="#e95555"
        android:id="@+id/linearLayout"
        android:orientation="vertical">

    </LinearLayout>

    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/list"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        tools:layout_editor_absoluteX="0dp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/linearLayout" />

    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="13dp"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        android:layout_marginBottom="8dp"
        android:background="#e95555"
        app:fabSize="normal"
        android:onClick="AddItem"/>

</android.support.constraint.ConstraintLayout>

And here's the xml for the main activity:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.dobleu.hotlists.MainActivity">

    <FrameLayout
        android:id="@+id/frame_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/navigation"
        android:animateLayoutChanges="true">


    </FrameLayout>


    <android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="#2b2b2b"
        app:itemIconTint="#fff"
        app:itemTextColor="#fff"
        app:menu="@menu/menu"/>
</RelativeLayout>

我已经尝试了很多工作,但我找不到解决方案。

我已经阅读过关于NPE是什么以及为什么的帖子,但我仍然不明白。

现在我感到厌倦了,当我非常清楚有一个答案可以应用于这个问题但是我不知道如何应用它时,人们会将我的问题标记为重复。

请帮帮我。

0 个答案:

没有答案