Как заполнить пользовательский список из базы данных sqlite?

Я создал приложение для Android, в котором я должен получить данные из базы данных sqlite и установить его на пользовательский просмотр списка. Проблема в том, что данные не отображаются. мой код такой же, как требуется для отображения вывода.

1 ответ

Вам нужно создать класс, который расширяет CursorAdapter. Ниже приведен демонстрационный код:

public class PassCursorAdapter extends CursorAdapter {
public PassCursorAdapter(Context context, Cursor c) {
    super(context, c,0);
}

@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
    return LayoutInflater.from(context).inflate(R.layout.item_todo,parent,false);
}

@Override
public void bindView(View view, Context context, Cursor cursor) {


    TextView textID = (TextView) view.findViewById(R.id.textView6);
    TextView textName = (TextView) view.findViewById(R.id.textView3);
    TextView textUser = (TextView) view.findViewById(R.id.textView4);
    TextView textPass = (TextView) view.findViewById(R.id.textView5);

    int idColumnIndex = cursor.getColumnIndex(PassDBHelper.COLUMN_ID);
    int nameColumnIndex = cursor.getColumnIndex(PassDBHelper.PASS_COLUMN_NAME);
    int userColumnIndex = cursor.getColumnIndex(PassDBHelper.PASS_COLUMN_USERNAME);
    int passColumnIndex = cursor.getColumnIndex(PassDBHelper.PASS_COLUMN_PASSWORD);

    String id = cursor.getString(idColumnIndex);
    String name = cursor.getString(nameColumnIndex);
    String user = cursor.getString(userColumnIndex);
    String pass = cursor.getString(passColumnIndex);

    textID.setText(id);
    textName.setText(name);
    textUser.setText(user);
    textPass.setText(pass);

}

}

В методе newView вы возвращаете файл макета. Вот как будет выглядеть файл макета вашего списка с 4 текстовыми представлениями. В конце концов, есть метод bindView, где вы устанавливаете идентификаторы.

Теперь для отображения базы данных вам нужно получить данные из базы данных sq-lite следующим образом:

   private void displayDataBaseInfo() {

   PassDBHelper passDBHelper = new PassDBHelper(this);
   SQLiteDatabase db = passDBHelper.getReadableDatabase();
   String [] columns = {
      PassDBHelper.COLUMN_ID,
      PassDBHelper.PASS_COLUMN_NAME,
      PassDBHelper.PASS_COLUMN_USERNAME,
      PassDBHelper.PASS_COLUMN_PASSWORD
   } ;

   Cursor cursor = db.query(PassDBHelper.TABLE_NAME,columns,null,null,null,null,null);


    ListView listView = (ListView)findViewById(R.id.list);

    PassCursorAdapter passCursorAdapter = new  PassCursorAdapter(this,cursor);

    listView.setAdapter(passCursorAdapter);

}//displayDatabaseInfo
Другие вопросы по тегам