【问题标题】:ListView - findviewbyid returns nullListView - findviewbyid 返回 null
【发布时间】:2015-12-29 00:13:32
【问题描述】:

我知道有很多这样的问题,但每个答案都是这样的:你缺少 setContentView()。

这是我的 java 代码:

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

    invoices = new PendingInvoices().getListInvoices();
    fillList();
}

private void fillList() {
    ListAdapter dataAdapter = new PendingInvoiceAdapter(this, R.layout.pending_invoice_row, invoices);
    ListView listView = (ListView) findViewById(R.id.invoice_list_view);
    listView.setAdapter(dataAdapter);
}

每次它在listView.setAdapter(dataAdapter); 上以NullPointerException 停止。

如您所见,我在onCreate 方法上有setContentView()

我的 activity_pending_invoice 有名为 invoice_list_view 的 ListView:

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

<ListView
    android:id="@+id/invoice_list_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/dark_gray"
    />

</LinearLayout>

pending_invoice_row 只是一个LinearLayout 和一个Textview

有人知道怎么回事吗?这就像一场噩梦!

【问题讨论】:

  • 你检查过你的dataAdapter吗?
  • @tdmsoares 你什么意思?如果 dataAdapter 不为空?我在调试时拆分错误行(在第二行使用(dataAdapter);)并且错误消息始终出现在listView.setAdapter
  • 发布异常的完整堆栈跟踪
  • 这段代码看起来是正确的。而设置适配器上的NullPointerException 只能表示找不到ListView。我建议删除项目的 Build 文件夹并清理重建它(并从 Emulator/Phone 中删除旧应用程序)。附: invoice_list_view 的根 LinearLayout 可以转换为 FrameLayout,内部只有 ListView
  • @Blackbelt 谢谢你的评论。在复制日志消息时,我发现了它无法正常工作的原因。

标签: android listview


【解决方案1】:

对于有同样问题的人:

检查堆栈跟踪,您可能会发现这一行:

Caused by: java.lang.NullPointerException
11-29 20:26:28.327: E/AndroidRuntime(786): at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:330).

这意味着您传递给ListAdapterList 为空。

我不知道为什么 android 显示 listView 为空,但我很高兴它现在可以工作了 :)


感谢 cmets 回答我的问题,这很有帮助。感谢this question and answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    相关资源
    最近更新 更多