ile listeden seçilen öğeyi seçin Android geliştirmede yepyeni oldum ... iPhone ve .Net geçmişlerinden geliyor. Buna çok benzer sorular gördüm, ama bunların hiçbiri SimpleCursorAdapter ile ilgilenmedi. Bir öğe tıklandığında SonraSimpleCursorAdapter
ListAdapter adapter = new SimpleCursorAdapter(
this,
android.R.layout.simple_list_item_1,
c,
new String[] {"name"},
new int[] {android.R.id.text1});
setListAdapter(adapter);
:
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
//Difference between this:
Cursor c = (cursor)l.getItemAtPosition(position);
//and this??
Cursor c = (Cursor)l.getAdapter().getItem(position);
int categoryId = c.getInt(0);
}
bu doğru yolu mu
benim ListView için bir SQLite sorgudan veri bağlamak için bir imleç kullanan bir temel ListActivity var Seçilen elemanın kimliğini almak için? Tuhaf görünüyor, çünkü veritabanı kapatıldıktan sonra imlecimi kullanabileceğimi düşünmüyordum (ki ben bağlandıktan sonra). Bu id dosyasındaki asıl öğeyi almanın bir yolunu göremediğimde, kimliği geçen nokta nedir? Ayrıca, getItemAtPosition() neden bir imleci döndüreceğini anlamıyorum ... imleç tüm listeye bağlı; sadece bir satır değil. Son olarak, eğer bu doğruysa, imleci almanın iki yolu arasında bir fark var mı? Teşekkürler.
teşekkürler! StartManagingCursor'u arıyordum, ama neden şimdi anlayamadım! Birkaç soru ... Yani, SQLiteDatabase.close() yöntemini çağırdığımda bile, bu imlecin buna erişmesini engellemez mi? ListView bir getCursor() yöntemine sahip görünmüyor. Son olarak, yöntemime iletilen kimlik, veritabanımdaki kimlik otomatik olarak mı? Teşekkürler! – GendoIkari
Ah, eğer 'close' iseniz, ListView'iniz muhtemelen çalışmayı durduracaktır: genel olarak yaptığım şey, Application nesnesini veritabanı bağdaştırıcım olarak yeniden kullanıyorum: "onCreate" içinde açıp "onTerminate" öğesini kapatıp sonra da bunu bağlamak için kullanıyorum uygulamanın yaşam döngüsüne veritabanı bağlantısı yaşam döngüsü. 'GetCursor' kadarıyla, benim hatam: 'İmleç c = ((SimpleCursorAdapter) l.getAdapter()) olmalıdır getCursor();'. Ve evet, kimlik veritabanından çıkan şey: oldukça uygun. – Femi
Yardımlarınız için tekrar teşekkürler! – GendoIkari