检索数据时出现Java NullPointerException
我一直在尝试从预加载的数据库中检索数据,但总是出现NullPointerException错误。我正在尝试将数据检索到listview。我不知道问题出在哪里。请帮帮我。谢谢检索数据时出现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
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);