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

时间:2017-07-10 18:34:10

标签: java android listview android-arrayadapter

我已经花了一段时间阅读和调整我的代码,但它一直在崩溃,我无法弄清楚它为什么会崩溃。有人可以指出我在哪里犯错误。我是编程和Android开发的小伙伴,试图理解ArrayAdapter和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" />

1 个答案:

答案 0 :(得分:3)

在调用ListView listView = (ListView) findViewById(R.id.list);之前,

setContentView在构造函数中执行。由于尚未加载视图,因此请求的视图不存在,返回null

在调用findViewById

之后移动setContentView