Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检索数据时出现Java NullPointerException_Java_Android_Eclipse_Sqlite - Fatal编程技术网

检索数据时出现Java NullPointerException

检索数据时出现Java NullPointerException,java,android,eclipse,sqlite,Java,Android,Eclipse,Sqlite,我一直在尝试从预加载的数据库中检索数据,但总是出现NullPointerException错误。我正在尝试将数据检索到listview。我不知道问题出在哪里。请帮帮我。谢谢 public class Retrieve extends Activity { Dbhelper dbhelper; protected ListAdapter adapter; SQLiteDatabase db; @Override public void onCreate(Bundle savedIn

我一直在尝试从预加载的数据库中检索数据,但总是出现NullPointerException错误。我正在尝试将数据检索到listview。我不知道问题出在哪里。请帮帮我。谢谢

public class Retrieve extends Activity {  
Dbhelper dbhelper;  
protected ListAdapter adapter;
SQLiteDatabase db;  
@Override  
public void onCreate(Bundle savedInstanceState) {  
super.onCreate(savedInstanceState);  
setContentView(R.layout.ret_all_info);    
String[] from = new String[] { "_id" };  
int[] to = new int[] { R.id.studid};  
dbhelper = new Dbhelper(this);  
try {  
dbhelper.createDataBase();  
} catch (IOException e) {  
 // TODO Auto-generated catch block  
e.printStackTrace();  
}  

Cursor c = dbhelper.getData();  

adapter = new SimpleCursorAdapter(getApplicationContext(), R.layout.ret_all, c, from, to, 0);  

ListView list = (ListView) findViewById(R.id.ListView1);  

list.setAdapter(adapter);  

list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub

Intent intent = new Intent(Retrieve.this, RetrieveDetails.class);
Cursor cursor = (Cursor) adapter.getItem(position);
intent.putExtra("COMMAND_ID", cursor.getInt(cursor.getColumnIndex("_id")));
startActivity(intent);


}

});
}  
}  

您指出NPE发生在以下位置:

   ListView list = (ListView) findViewById(R.id.ListView1);  
-> list.setAdapter(adapter);  

这意味着列表为空,可能是因为R.layout.ret_all_info中没有id为R.id.ListView1的视图。

list.setAdapter(适配器)最可能的原因:在
R.layout.ret\u all\u info
中没有
R.id.ListView1
,或者您使用了错误的
dbhelper
(因为您有两个:local和field),或者游标
c
为空(不太可能,因为stacktrace中没有
getData
的迹象)。显然,存在
android:id=“@+id/ListView1”
:\list
变量由于某种原因必须为空。
   ListView list = (ListView) findViewById(R.id.ListView1);  
-> list.setAdapter(adapter);