从一个ArrayList将数据插入到一个ListView抛出尝试调用虚拟错误

问题描述:

我有上有一个ListView的活动我一直试图从一个String ArrayList填充数据的列表视图,这是活动代码从一个ArrayList将数据插入到一个ListView抛出尝试调用虚拟错误

package com.example.arun.db; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.Toast; 

import java.util.ArrayList; 
public class List_view extends AppCompatActivity { 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      ArrayList<String> throwlist = new ArrayList<String>(); 
      ListView Trainlist; 
      Trainlist=(ListView)findViewById(R.id.station_list); 
      SQLiteDatabase db = openOrCreateDatabase("Station11.db", SQLiteDatabase.CREATE_IF_NECESSARY, null); 
      setContentView(R.layout.activity_list_view); 
      try{ 
       Cursor data_fetch = db.rawQuery("Select Station_name From Station", null); 

       String[] station_array = new String[data_fetch.getCount()]; 
       int i= 0; 
       while (data_fetch.moveToNext()) { 
        String name = data_fetch.getString(data_fetch.getColumnIndex("Station_name")); 
        station_array[i] = name; 
        Log.d("STATION_GET","Retrieved station " + station_array[i]); 
        //Toast.makeText(List_view.this, "Retrieved station " + station_array[i] , Toast.LENGTH_SHORT).show(); 
        throwlist.add(name); 
        i++; 

       } 
       data_fetch.close(); 
      }catch(Exception e) 
      { 
       Toast.makeText(List_view.this, "An Error occured Retrieving your data" , Toast.LENGTH_LONG).show(); 
      } 
      try { 

       ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
         this, android.R.layout.simple_list_item_1, throwlist); 
       Trainlist.setAdapter(arrayAdapter); 
      }catch (Exception e){ 
       Log.d("Error in listview ",e.toString()); 
       Toast.makeText(List_view.this, "Listview Error" , Toast.LENGTH_LONG).show(); 
      } 
     } 
    } 

伊夫确定该节 `

try { 

       ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
         this, android.R.layout.simple_list_item_1, throwlist); 
       Trainlist.setAdapter(arrayAdapter); 
      }catch (Exception e){ 
       Log.d("Error in listview ",e.toString()); 
       Toast.makeText(List_view.this, "Listview Error" , Toast.LENGTH_LONG).show(); 
      }` 

引发错误

10-28 18:03:42.004 11549-11549/com.example.arun.db D/Error in listview: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference 

在这个错误我知道这个错误可以通过在特定活动的XML文件中未声明的列表视图引起如告诉记者,在here

但ListView控件在XML明确规定作进一步的调查 继承人的XML代码:

<ListView 
    android:id="@+id/station_list" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:layout_marginBottom="8dp" 
    android:layout_marginEnd="8dp" 
    android:layout_marginLeft="8dp" 
    android:layout_marginRight="8dp" 
    android:layout_marginStart="8dp" 
    android:layout_marginTop="8dp" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toTopOf="parent" 
    tools:layout_constraintBottom_creator="1" 
    tools:layout_constraintLeft_creator="1" 
    tools:layout_constraintRight_creator="1" 
    tools:layout_constraintTop_creator="1" 
    app:layout_constraintHorizontal_bias="0.0" 
    app:layout_constraintVertical_bias="1.0" /> 

任何想法,为什么发生这种情况

你必须设置第一setContentView(R.layout.activity_list_view);比不控制研究的结合就像下面的代码

@Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_list_view); 
      ArrayList<String> throwlist = new ArrayList<String>(); 
      ListView Trainlist; 
      Trainlist=(ListView)findViewById(R.id.station_list); 
      SQLiteDatabase db = openOrCreateDatabase("Station11.db", SQLiteDatabase.CREATE_IF_NECESSARY, null); 

      // other code 
      } 
+0

这个固定的错误,但列表视图是没有要在哪里见过 –