尝试在空对象引用上调用虚方法'void android.widget.ListView.setAdapter(android.widget.ListAdapter)'

时间:2015-09-17 16:06:49

标签: android

我收到此错误。大多数错误我检查了一个关于空对象引用的错误

public class MainActivity extends Activity {

     //SQLiteOpenHelper sqLiteOpenHelper;
    //SQLiteDatabase sqLiteDatabase;
      String[] mobileArray = {"Android","IPhone","WindowsMobile","Blackberry","WebOS","Ubuntu","Windows7","Max OS X"};

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

        final ArrayAdapter<String> adapter;
        adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_2,mobileArray);
        ListView mylistView= (ListView) findViewById(R.id.listView1);
        mylistView.setAdapter(adapter);

    }
}

activity_main.xml中

这是main.xml文件

          xmlns:tools="http://schemas.android.com/tools"

          android:layout_width="match_parent"

          android:layout_height="match_parent"

          tools:context="com.example.myapplication5.app.MainActivity"

          android:orientation="vertical">

<android.support.v7.widget.Toolbar

        android:id="@+id/toolbar"

        android:layout_width="match_parent"

        android:layout_height="attr/actionBarSize"

        android:background="attr/colorPrimary"/> 
<ListView
        android:layout_width="match_parent"

        android:layout_height="wrap_content"


        android:id="@+id/listView1" />



</LinearLayout>

这是连接适配器的列表视图

1 个答案:

答案 0 :(得分:0)

据我所知,你有一个空对象myListView。
在设置适配器之前尝试检查null。
修改 下一行:

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

可能是null。你必须明白为什么它是null。就我从错误和代码中看到的而言,这就是它 编辑2
看一下本教程,它可以帮助您了解您做错了什么。
http://www.vogella.com/tutorials/AndroidListView/article.html