我想從數據庫中獲取所有數據並顯示。但它不起作用。任何人都可以告訴代碼有什麼問題嗎?謝謝。這裏是代碼SQLite從數據庫讀取數據
DataBase.java
//onlly the method
public List<Appo> getAllData(){
List<Appo> appos = new ArrayList<>();
String APPOINTMENT_TABLE_NAME_SELECT_QUERY =
String.format("SELECT * FROM %s ",
APPOINTMENT_TABLE_NAME
);
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.rawQuery(APPOINTMENT_TABLE_NAME_SELECT_QUERY, null);
try {
if (cursor.moveToFirst()) {
do {
Appo.title = cursor.getString(cursor.getColumnIndex(APPOINTMENT_COLUMN_TITLE));
Appo.time = cursor.getString(cursor.getColumnIndex(APPOINTMENT_COLUMN_TITLE));
Appo.details = cursor.getString(cursor.getColumnIndex(APPOINTMENT_COLUMN_DETAILS));
Appo.day = cursor.getString(cursor.getColumnIndex(APPOINTMENT_COLUMN_DAY));
} while(cursor.moveToNext());
}
} catch (Exception e) {
} finally {
if (cursor != null && !cursor.isClosed()) {
cursor.close();
}
}
return appos;
}
Appo.java
public class Appo {
public static int id;
public static String title;
public static String time;
public static String details;
public static String day;
}
ViewAndEdit.java
public class ViewAndEdit extends AppCompatActivity {
private TextView list;
private Button btnview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_and_edit);
list =(TextView) findViewById(R.id.listappo);
btnview =(Button)findViewById(R.id.btnview);
final DataBase databaseHelper = DataBase.getInstance(this);
btnview.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
final EditText title = new EditText(ViewAndEdit.this);
new AlertDialog.Builder(ViewAndEdit.this)
.setTitle("Edit")
.setView(title)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// continue with delete
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
})
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
List<Appo> appos = databaseHelper.getAllData();
for (Appo appo : appos) {
list.setText(appo.toString());
}
}
});
}
}
DataBase.java類由SQLiteOpenHelper擴展 –
爲什麼在選擇查詢中使用%s – Dilip
@ChamodOshan,你得到了什麼錯誤?請發佈日誌。 – Geek