В общем у меня есть 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. Как корректно вывести данные и что я неправильно делаю?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как менять xml атрибуты макетов через Java код android? Вначале подумал об использовании регулярных выражений, но мне сказали, что "парсить регулярками...
Есть такой не непосредственной связанный с программированием вопрос, а косвенный