簡體   English   中英

從onContextItemSelected()的列表中獲取值?

[英]Get value from list on onContextItemSelected ()?

您好想知道我們是否可以從onContextItemSelected()中的數據庫中獲取列表中定義的字段的值(如id)? 我創建上下文菜單的代碼固定在下面,不勝感激,謝謝

 public boolean onContextItemSelected(MenuItem item) {

    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
    long clickedPosition = info.id;

    switch (item.getItemId()) {
    case NEW_MENU_ITEM:
        //callActivity(1);
        break;
    case SAVE_MENU_ITEM:
        //callActivity(2);
        break;
    }
    return super.onContextItemSelected(item);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, view, menuInfo);
    menu.setHeaderTitle("Options");
    menu.add(0, NEW_MENU_ITEM, 0, "Delete");
    menu.add(0, SAVE_MENU_ITEM, 1, "Rename");
}

以下代碼不會從數據庫中撤消我的ID

long clickedPosition = info.id;
 @Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();

    Object obj = getListView().getItemAtPosition(info.position);
    String name = obj.toString();

}

該字段中返回的值完全取決於您的適配器實現。 這將是傳遞給OnItemClickListener的相同id ,它是適配器上的getItemId()返回的值。

如果使用CursorAdapter或其變體將數據提供給列表,則_id列是默認返回的值,除非您已修改此方法。 對於ArrayAdapter ,不是這種情況,您必須添加代碼以返回所需的ID。 如果您需要傳回的數據不僅僅是單個int ,則可以使用setTag()在列表項視圖上設置標簽,並從ContextMenuInfo檢索它,因為targetView是它攜帶的參數之一。

您可以通過在onContextItemSelected添加int id= info.position來檢索元素在此列表中的onContextItemSelected

希望能幫助到你

將database_id設置為lisviewItem視圖的標簽。

    view.setTag(database_id );

然后從onContextItemSelected(MenuItem item)獲取database_id

    @Override
    public boolean onContextItemSelected(android.view.MenuItem item) {
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item
                .getMenuInfo();
        int listPosition = info.position;


        switch (item.getItemId()) {

        case call:

            View view = info.targetView;
            String database_id=(String) view.getTag();
            return true;
        case defaullt: 
            return true;


        }
        return super.onContextItemSelected(item);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM