Как из SQLite Бд вывести элемент в TextView

339
26 ноября 2016, 19:26

В общем у меня есть listView в главном активити:

    mList = (ListView)findViewById(R.id.list);
    mList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> list_view, View view, int position, long id) {
            Intent intent = new Intent(getApplicationContext(), NoteRead.class);
            intent.putExtra("id", id);
            startActivity(intent);
        }
    });
    sqlHelper = new DatabaseHelper(getApplicationContext());
}
public void onInfoClick(View v){
    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    Info info = new Info(builder);
}
 @Override
public void onResume() {
    super.onResume();
    db = sqlHelper.getWritableDatabase();
    userCursor =  db.rawQuery("select * from "+ DatabaseHelper.TABLE, null);
    String[] headers = new String[] {DatabaseHelper.COLUMN_DATE, DatabaseHelper.COLUMN_NOTE, DatabaseHelper.COLUMN_CATEGORY};
    userAdapter = new SimpleCursorAdapter(this, R.layout.list_view,
            userCursor, headers, new int[]{android.R.id.text1, android.R.id.text2, R.id.text3}, 0);
    mList.setAdapter(userAdapter);

Нужно чтобы при нажатии на элемент списка открывалось другое активити и в зависимости от того на какой элемент мы нажали данные из 3 колонок выводились в 3 TextView. Вот код второго активити:

   public void onCloseClickNR(View v){
    finish();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_note_read);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    TextView textDate = (TextView)findViewById(R.id.textDate);
    TextView textCategory = (TextView)findViewById(R.id.textCategory);
    TextView textNote = (TextView)findViewById(R.id.textNote);
    Bundle args = new Bundle();
    args.putLong("id", id);
    sqlHelper = new DatabaseHelper(this);
    db = sqlHelper.getWritableDatabase();
    userCursor = db.rawQuery("select * from " + DatabaseHelper.TABLE + " where " +
            DatabaseHelper.COLUMN_ID + "=?", new String[]{String.valueOf(id)});
    userCursor.moveToFirst();
    textNote.setText(userCursor.getString(0));
    textDate.setText(userCursor.getString(1));
    textCategory.setText(userCursor.getString(2));
    userCursor.close();
    db.close();
}

При нажатии на элемент списка приложение крашится, в отчёте выводится ошибка "android.database.CursorIndexOutOfBoundsException". При нажатии на любой элемент списка выводится id = 16842960. Как корректно вывести данные и что я неправильно делаю?

READ ALSO
Android изменение xml атрибутов через Java

Android изменение xml атрибутов через Java

Как менять xml атрибуты макетов через Java код android? Вначале подумал об использовании регулярных выражений, но мне сказали, что "парсить регулярками...

241
Помогите написать селектор jsoup

Помогите написать селектор jsoup

Есть вот такой кусок вебкодаНужно выбрать 4591077

227
Использование регулярных выражений в Java

Использование регулярных выражений в Java

Есть предложение:"Я родился 0208

227
JSR 336 - фитчер позволяющий выполнять switch на string

JSR 336 - фитчер позволяющий выполнять switch на string

Есть такой не непосредственной связанный с программированием вопрос, а косвенный

217