【问题标题】:Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference尝试在空对象引用上调用虚拟方法“void android.widget.ListView.setAdapter(android.widget.ListAdapter)”
【发布时间】:2015-09-17 16:06:49
【问题描述】:

我收到此错误。主要是错误我检查了关于空对象引用的错误

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>

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

【问题讨论】:

  • 如果您不指定错误日志,您希望人们如何提供帮助。伙计们,在 stackverflow 上发布任何内容之前,请先看一下正确帖子的结构。简而言之,您做了什么,错误是什么以及发生错误的一些代码/数据。一切都应该尽可能相关。
  • 使用者:java.lang.NullPointerException:尝试在 com.example.myapplication5 的空对象引用上调用虚拟方法 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' .app.MainActivity.onCreate(MainActivity.java:30) 在 android.app.Activity.performCreate(Activity.java:5990)
  • 请将 logcat 报告添加到问题中...neyways 您的 myListView 为 null 确保您的 R.layout.activity_main 中有 R.id.listView
  • 不是这里的人,在主帖中并格式化。

标签: android


【解决方案1】:

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

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

可能为空。你必须明白为什么它是空的。就是这样,据我从错误和代码中可以看出。
EDIT 2
看看本教程,它可能会帮助您了解您做错了什么。
http://www.vogella.com/tutorials/AndroidListView/article.html

【讨论】:

  • 是的,我知道它给了我 nul 对象,但我已经适应了数组,这就是为什么感到困惑
  • 您的 xml 中似乎有 listview1 而不是 listview。检查我编辑的答案。
  • 这是编译时错误,如果确实发生了,我会很容易弄清楚的,我错误地发布了我编辑了代码
  • 我发现错误试图在不同的 api 19 设备上运行,但在 api 22 设备上它给了我一个错误,可能是 api 22 支持回收器视图
  • 从我的回答中运行教程,然后尝试查看不同的 api 级别。
猜你喜欢
  • 2016-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多