2015-12-27 5 views
0

Я знаю, что таких вопросов очень много, но каждый ответ подобен: вам не хватает setContentView().ListView - findviewbyid возвращает null

Это мой 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); 
} 

Everytime он останавливается с NullPointerException на listView.setAdapter(dataAdapter);.

Как вы можете видеть, у меня есть setContentView() по onCreate способ.

Мой activity_pending_invoice имеет ListView с именем invoice_list_view:

<?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

Кто-нибудь знает, что случилось? Это как кошмар!

+0

Вы когда-нибудь проверяли свой адаптер данных? – tdmsoares

+0

@tdmsoares Что значит? Если dataAdapter не равен нулю? Я разделил строку с ошибкой во время отладки (с помощью '(dataAdapter);' во второй строке), и сообщение об ошибке всегда появляется на 'listView.setAdapter' – kristyna

+1

, чтобы опубликовать полную стекю исключения – Blackbelt

ответ

0

Для тех, кто будет иметь ту же проблему:

Проверьте StackTrace, вы можете нашли эту строку:

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

Это означает, что List вы передаете в ListAdapter равна нулю.

Я не знаю, почему андроид показал listView быть пустыми, но я рад, что он теперь работает :)


благодарственным для комментариев моего вопроса, это очень помогает. И благодаря this question and answer

Смежные вопросы