我试图从数据库中获取所有数据并显示。但它不起作用。任何人都可以告诉代码有什么问题?谢谢。这是代码
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());
}
}
});
}
}
答案 0 :(得分:1)
public List<Appo> getAllData() {
List<Appo> appos = new ArrayList<Appo>();
// Select All Query
String selectQuery = "SELECT * FROM " + APPOINTMENT_TABLE_NAME;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Appo appo = new Appo();
appo.setTital(cursor.getString(0));
appo.setTime(cursor.getString(1));
appo.setDetails(cursor.getString(2));
appo.setday(cursor.getString(3));
//Adding contact to list
appos.add(appo);
} while (cursor.moveToNext());
}
// return all list
return appos;
}
有关详细信息,请查看 Android SQLite Database