Bir imlecin geçerli kaydı almak istiyorum içine İmleç gelen verileri almak için.nasıl bir bağlam menüsünü manipüle böylece yerine kimliği, ContextMenu
Sana nasıl kimliğini almak için gösteren bu örnek here gördük: benim yazmak için izin verecektir tıklanan içerik menüsüne uygun SQLite veritabanı kimliği almak için beni tanır çünkü
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case DELETE_ID:
AdapterView.AdapterContextMenuInfo info=
(AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
delete(info.id);
return(true);
}
return(super.onOptionsItemSelected(item));
}
bu harika Bir arama yapmak için bir işlev. Ama kesinlikle mevcut imleci tekrar kullanabilir miyim?
bunu yaparken çalıştı:Cursor c = (Cursor) this.getListAdapter().getItem((int) info.id);
String itemPriority = c.getInt(1);
Log.v(TAG, "Current item:" + itemPriority);
ama imleç çizgi yerine Peşinde olduğum kaydın veritabanının sadece şema dönmek gibi görünüyor.
Birisi biraz ışık tutabilir.
DÜZENLEME: çözüm bulduk @azgolfer teşekkürler. Bağdaştırıcıyı doldurmak için bir fillData() yöntemi kullanıyorum. Normalde bu hiçbir değişken olmadan beyan edilir. Bu yöntemi bir alan değişkeniyle yeniden tanımlamak zorundaydım. onContextItemSelected içinde curstor adaptörü görünür hale getirmek için kod ilgili kısmı buradadır:
private void fillData() {
Cursor itemsCursor = mDbHelper.fetchAllItemsFilter(mListId, mStatusFilter);
startManagingCursor(itemsCursor);
mItemAdaptor = new ItemAdapter(this, itemsCursor);
this.setListAdapter(mItemAdaptor);
}
Yeniden kullanmak demek istiyorsunuz ne
Önce kullanıcı preslenmiş ne konumunu belirlemek? Ve 'c.getInt (1)', bu imleç sırasının 1. dizisi olanı alır. Bu yüzden, sadece cursor'lar satırının diğer dizinlerinden gelen kayıtları, 'c.getString (2)' gibi. Başka bir şey yapmaya çalışmıyorsan. – Andy
Maalesef, iş tekrar kullanım “kullanım” olmalıdır. Ancak nokta, imlecin sadece şema verisini döndürmemesidir. –
'itemPriority' öğesini gösteren şeyi basabilir misiniz? – Andy