Итак, мой вопрос: я создал список и заполнил его с помощью простого адаптера курсора. Итак, теперь, когда я нажимаю элемент в своем списке, он принимает меня к другому действию, которое предполагает показать мне детали элемента, который я нажал. Каков наилучший подход к этому? Вот моя функция заполнения списка. Что именно я должен отправлять на следующий вид деятельности? Я думал о том, чтобы отправить позицию, но тогда это не сработает, потому что в следующем действии я должен был бы получить доступ к базе данных, используя эту позицию, но это не было бы точным, потому что в базе данных могли быть удалены строки, которые могут вернуть мне другую строку данных. Любые идеи будут по-настоящему оценены.Заполнение списка с помощью базы данных
private void populateListView(){
Cursor cursor = myDatabase.getAllData();
String[] fromfieldNames = new String[]{StudentDBOpenHelper.ITEM_NAME_COLUMN};
int[] toViewIDs = new int[] {R.id.textView_itemName};
SimpleCursorAdapter myCursorAdapter;
myCursorAdapter = new SimpleCursorAdapter(getActivity(),
R.layout.indvidualview_layout,cursor,fromfieldNames,toViewIDs,0);
ListView myList = (ListView) getActivity().findViewById(R.id.courseListXML);
myList.setAdapter(myCursorAdapter);
myList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent nextActivity = new Intent(getActivity(), CourseWorkItemActivity.class);
nextActivity.putExtra("Item", position);
startActivity(nextActivity);
}
});
}
Я попробую! Спасибо. – Carlitos
Следует отметить, что при возврате из начального действия, если эта активность изменяет базу данных, вы должны повторить запрос и сбросить адаптер, чтобы использовать новый/измененный курсор через 'changeCursor',' swapCursor' или 'notifyDataSetCahnged' (Я использовал swapCursor и делаю это в методе onresume). например 'currentproductsperaisleecursor = shopperdb.getProductsperAisle (currentaisleid); // Переключить на этот курсор current_productsperaislecursoradapter.swapCursor (currentproductsperaisleecursor); ' – MikeT