Как по нажатию кнопки Read вывести список в ListView?

161
04 июля 2019, 04:40
public class MainActivity extends Activity implements OnClickListener {
final String LOG_TAG = "myLogs";
Button btnAdd, btnRead, btnClear, btnUpd, btnDel;
EditText etName, etEmail, etID;
DBHelper dbHelper;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btnAdd = (Button) findViewById(R.id.btnAdd);
    btnAdd.setOnClickListener(this);
    btnRead = (Button) findViewById(R.id.btnRead);
    btnRead.setOnClickListener(this);
    btnClear = (Button) findViewById(R.id.btnClear);
    btnClear.setOnClickListener(this);
    etName = (EditText) findViewById(R.id.etName);
    etEmail = (EditText) findViewById(R.id.etEmail);
    btnClear = (Button) findViewById(R.id.btnClear);
    btnClear.setOnClickListener(this);
    btnUpd = (Button) findViewById(R.id.btnUpd);
    btnUpd.setOnClickListener(this);
    btnDel = (Button) findViewById(R.id.btnDel);
    btnDel.setOnClickListener(this);
    etName = (EditText) findViewById(R.id.etName);
    etEmail = (EditText) findViewById(R.id.etEmail);
    etID = (EditText) findViewById(R.id.etID);
    // создаем объект для создания и управления версиями БД
    dbHelper = new DBHelper(this);
}

@Override
public void onClick(View v) {
    // создаем объект для данных
    ContentValues cv = new ContentValues();
    // получаем данные из полей ввода
    String name = etName.getText().toString();
    String email = etEmail.getText().toString();
    String id = etID.getText().toString();
    // подключаемся к БД
    SQLiteDatabase db = dbHelper.getWritableDatabase();
    switch (v.getId()) {
        case R.id.btnAdd:
            Log.d(LOG_TAG, "--- Insert in mytable: ---");
            // подготовим данные для вставки в виде пар: наименование столбца - значение
            cv.put("name", name);
            cv.put("email", email);
            // вставляем запись и получаем ее ID
            long rowID = db.insert("mytable", null, cv);
            Log.d(LOG_TAG, "row inserted, ID = " + rowID);
            break;
        case R.id.btnRead:
            Log.d(LOG_TAG, "--- Rows in mytable: ---");
            // делаем запрос всех данных из таблицы mytable, получаем Cursor
            Cursor c = db.query("mytable", null, null, null, null, null, null);
            // ставим позицию курсора на первую строку выборки
            // если в выборке нет строк, вернется false
            if (c.moveToFirst()) {
                // определяем номера столбцов по имени в выборке
                int idColIndex = c.getColumnIndex("id");
                int nameColIndex = c.getColumnIndex("name");
                int emailColIndex = c.getColumnIndex("email");
                do {
                    // получаем значения по номерам столбцов и пишем все в лог
                    Log.d(LOG_TAG,
                            "ID = " + c.getInt(idColIndex) +
                                    ", name = " + c.getString(nameColIndex) +
                                    ", email = " + c.getString(emailColIndex));
                    // переход на следующую строку
                    // а если следующей нет (текущая - последняя), то false - выходим из цикла
                } while (c.moveToNext());
            } else
                Log.d(LOG_TAG, "0 rows");
            c.close();
            break;
        case R.id.btnClear:
            Log.d(LOG_TAG, "--- Clear mytable: ---");
            // удаляем все записи
            int clearCount = db.delete("mytable", null, null);
            Log.d(LOG_TAG, "deleted rows count = " + clearCount);
            break;
        case R.id.btnUpd:
            if (id.equalsIgnoreCase("")) {
                break;
            }
            Log.d(LOG_TAG, "--- Update mytable: ---");
            // подготовим значения для обновления
            cv.put("name", name);
            cv.put("email", email);
            // обновляем по id
            int updCount = db.update("mytable", cv, "id = ?",
                    new String[] { id });
            Log.d(LOG_TAG, "updated rows count = " + updCount);
            break;
        case R.id.btnDel:
            if (id.equalsIgnoreCase("")) {
                break;
            }
            Log.d(LOG_TAG, "--- Delete from mytable: ---");
            // удаляем по id
            int delCount = db.delete("mytable", "id = " + id, null);
            Log.d(LOG_TAG, "deleted rows count = " + delCount);
            break;
    }
    // закрываем подключение к БД
    dbHelper.close();
}
class DBHelper extends SQLiteOpenHelper {
    public DBHelper(Context context) {
        // конструктор суперкласса
        super(context, "myDB", null, 1);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        Log.d(LOG_TAG, "--- onCreate database ---");
        // создаем таблицу с полями
        db.execSQL("create table mytable ("
                + "id integer primary key autoincrement,"
                + "name text,"
                + "email text" + ");");
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }
}}

Эта код добавляет удаляет обновляет данные из БД все прекрасно работает но при нажатии на кнопки READ она все выводит в консоль, да так и продуманно было изначально но потом я решил добавить ListView что бы все записи выводить в ListView и не заморачиваться. Только как это сделать я так и не понял. Простите за ранее за мой русский.

READ ALSO
Как получить name and value of all context-parameters в jsp с помощью JSTL и EL(НЕ ДУБЛИКАТ!)

Как получить name and value of all context-parameters в jsp с помощью JSTL и EL(НЕ ДУБЛИКАТ!)

Вот,вроде-бы,EL хорошая штукаТебе не нужно делать вставки,которые очень громоздкие

126
Экспорт данных из TinyDB в csv

Экспорт данных из TinyDB в csv

В моем приложении я использую библиотеку TinyDB для сохранения\восстановления данных из SharedPreferencesНапример:

141
Проверка логера на root в log4j2

Проверка логера на root в log4j2

Помогите реализовать проверку, получил ли я логгер с настройками Root, или нет

150
Создать массив игроков и “проверить” их по очереди [закрыт]

Создать массив игроков и “проверить” их по очереди [закрыт]

Никак не могу создать массив игроковВ классе Team все установил, сеттеры, геттеры, конструктор и toString

141