SQLite从数据库中读取数据

时间:2017-04-21 10:57:55

标签: java android android-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());
                }
            }
        });

    }
}

1 个答案:

答案 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