在我的應用程序中,我想要顯示來自sqlite的數據。 當我按下Show Info按鈕時,我想把放置函數getInfo的記錄放到textView中。這是我的代碼:當我想從sqlite顯示一行時出錯
btnShow = (Button) findViewById(R.id.btnInfo);
final TextView txtNume = (TextView) findViewById(R.id.txtNume);
final TextView txtPrenume = (TextView) findViewById(R.id.txtPrenume);
final TextView txtTelefon = (TextView) findViewById(R.id.txtTelefon);
final TextView txtAdresa = (TextView) findViewById(R.id.txtadresa);
final TextView txtAdresaEmail = (TextView) findViewById(R.id.txtEmail);
final TextView txtDataNasterii = (TextView) findViewById(R.id.txtDataNasterii);
final TextView txtSex = (TextView) findViewById(R.id.txtSex);
btnShow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Pacienti pacienti = pacientiDB.getInfo(text);
if (pacienti != null) {
pacienti.setTelefon(txtTelefon.getText().toString());
pacienti.setPrenume(txtPrenume.getText().toString());
pacienti.setNume(txtNume.getText().toString());
pacienti.setAdresa(txtAdresa.getText().toString());
pacienti.setDataNasterii(txtDataNasterii.getText().toString());
pacienti.setEmail(txtAdresaEmail.getText().toString());
pacienti.setSex(txtSex.getText().toString());
}}
});
這是函數的getInfo:
public Pacienti getInfo(String text) {
Pacienti returnPacient = null;
Cursor cursor = null;
try {
cursor = database.rawQuery("SELECT * FROM " + PACIENTI_NAME
+ " WHERE prenume = '" + text + "'", null);
if (cursor.getCount() > 0) {
int indexTelefon = cursor.getColumnIndex("telefon");
int indexPrenume = cursor.getColumnIndex("prenume");
int indexNume = cursor.getColumnIndex("nume");
int indexAdresaEmail = cursor.getColumnIndex("adresaEmail");
int indexSex = cursor.getColumnIndex("Sex");
int indexAdresaBuletin = cursor.getColumnIndex("AdresaBuletin");
int indexDatanasterii = cursor.getColumnIndex("dataNasterii");
cursor.moveToFirst();
do {
String nume = cursor.getString(indexNume);
String prenume = cursor.getString(indexPrenume);
String Telefon = cursor.getString(indexTelefon);
String AdresaEmail = cursor.getString(indexAdresaEmail);
String Sex = cursor.getString(indexSex);
String AdresaBuletin = cursor.getString(indexAdresaBuletin);
String DataNasterii = cursor.getString(indexDatanasterii);
returnPacient = new Pacienti();
returnPacient.setNume(nume);
returnPacient.setPrenume(prenume);
returnPacient.setTelefon(Telefon);
returnPacient.setAdresa(AdresaBuletin);
returnPacient.setEmail(AdresaEmail);
returnPacient.setDataNasterii(DataNasterii);
returnPacient.setSex(Sex);
cursor.moveToNext();
} while (!cursor.isAfterLast());
}
} finally {
if (cursor != null) {
cursor.close();
}
}
return returnPacient;
}
但沒有奏效。我收到這個錯誤,我不明白爲什麼,因爲我確認我有數據庫中的數據:
04-14 10:35:33.478: E/AndroidRuntime(278): FATAL EXCEPTION: main
04-14 10:35:33.478: E/AndroidRuntime(278): java.lang.NullPointerException
04-14 10:35:33.478: E/AndroidRuntime(278): at com.example.medicaldoi.ShowInfo$1.onClick(ShowInfo.java:53)
04-14 10:35:33.478: E/AndroidRuntime(278): at android.view.View.performClick(View.java:2408)
04-14 10:35:33.478: E/AndroidRuntime(278): at android.view.View$PerformClick.run(View.java:8816)
04-14 10:35:33.478: E/AndroidRuntime(278): at android.os.Handler.handleCallback(Handler.java:587)
04-14 10:35:33.478: E/AndroidRuntime(278): at android.os.Handler.dispatchMessage(Handler.java:92)
04-14 10:35:33.478: E/AndroidRuntime(278): at android.os.Looper.loop(Looper.java:123)
04-14 10:35:33.478: E/AndroidRuntime(278): at android.app.ActivityThread.main(ActivityThread.java:4627)
04-14 10:35:33.478: E/AndroidRuntime(278): at java.lang.reflect.Method.invokeNative(Native Method)
04-14 10:35:33.478: E/AndroidRuntime(278): at java.lang.reflect.Method.invoke(Method.java:521)
04-14 10:35:33.478: E/AndroidRuntime(278): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-14 10:35:33.478: E/AndroidRuntime(278): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-14 10:35:33.478: E/AndroidRuntime(278): at dalvik.system.NativeStart.main(Native Method)
有人可以幫助我!
你在ShowInfo.java中的53行是什麼? –