ArrayAdapter 和 ListView - 我的应用程序崩溃

ArrayAdapter and ListView - my app crashing

我已经花了一段时间阅读和调整我的代码,但它总是崩溃,我不明白为什么会崩溃。有人可以指出我在哪里犯了错误。我是编程和 Android 开发的新手,试图了解 ArrayAdapters 和 ListViews 的基础知识。

这是我的代码:MainActivity.java

package com.example.android.samplelistviewapp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    ArrayList<String> listItems = new ArrayList<String>();

    ArrayAdapter<String> adapter;

    ListView listView = (ListView) findViewById(R.id.list);

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

        listItems.add("hello");
        listItems.add("how do you do");
        listItems.add("Ca va");
        listItems.add("Bonjour");
        listItems.add("Toronto");
        listItems.add("hello");
        listItems.add("mississauga");
        listItems.add("computer");
        listItems.add("ipad");
        listItems.add("sky");
        listItems.add("hello");
        listItems.add("road");
        listItems.add("mountain");

        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, listItems);

        listView.setAdapter(adapter);
    }
}

这是我的 xml:activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<ListView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android" />

ListView listView = (ListView) findViewById(R.id.list); 在调用 setContentView 之前在构造函数中执行。由于视图尚未加载请求的视图不存在,返回 null.

findViewById 移动到对 setContentView

的调用之后