2013-03-01 34 views
1

我有一個expandListView diaryDisplaylist如何確定該項目屬於哪一類,從onContextItemSelected

這是適配器DiaryExpandListAdapter mAdapterForAll將被用於填充diaryDisplayList

代碼片段其做到這一點:

mAdapterForAll = new DiaryExpandListAdapter(this, diaryList); 
    diaryDisplaylist.setAdapter(mAdapterForAll); 

diarylist的類型爲:

diaryList = new ArrayList<Object>(); 

diaryList將包含大約8個數據庫中的所有項目,根據數據庫中輸入日期的時間將expandlist分組。 它完美地顯示它。

現在我有擴展列表完整的屬於不同數據庫的元素。

因此,對於編輯和刪除功能,我已經使用

diaryDisplaylist.setOnCreateContextMenuListener(this); 

代碼片段文本菜單:

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 

    ExpandableListView.ExpandableListContextMenuInfo info = (ExpandableListView.ExpandableListContextMenuInfo) menuInfo; 
    int type = ExpandableListView.getPackedPositionType(info.packedPosition); 

    if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) { 

     menu.add(0, Constants.MENU_EDIT, 0, "Edit"); 
     menu.add(0, Constants.MENU_DELETE, 1, "Delete"); 
    } 
} 

@Override 
public boolean onContextItemSelected(android.view.MenuItem item) { 

    ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo) item.getMenuInfo(); 

    switch (item.getItemId()) { 

    case Constants.MENU_EDIT: 
     // once i get item belonging to respective database i can edit 
     return true; 

    case Constants.MENU_DELETE: 

     return true; 

    default: 
     return super.onContextItemSelected(item); 
    } 
} 

在上的ContextMenuItem選擇我如何才能找到屬於哪個數據庫? 我不能使用適配器找到我的對象,因爲我沒有在contextItemSelected中的groupPosition和childPosition。 如果我能得到那些我可以簡單地使用。

Object selectedObject = mAdapterForAll.getChild(groupPosition, childPosition); 

然後用selectedObject我可能已經發現了

if(selectedObject isInstanceOf db1) 

回答

0

對不起上面的代碼是越野車這個代碼工作正常,我決定從expandlist視圖組和兒童地位

int groupPos = 0, childPos = 0; 
int type = ExpandableListView.getPackedPositionType(info.packedPosition); 
if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) { 
    groupPos = ExpandableListView 
      .getPackedPositionGroup(info.packedPosition); 
    childPos = ExpandableListView 
      .getPackedPositionChild(info.packedPosition); 
} 
1

獲得組和兒童的位置,我用

Object obj = diaryList.get((int) info.packedPosition); 

在onContextItemSelected它的工作。

+0

對不起上面的代碼是越野車這個代碼工作正常,我確定組和兒童擴展列表視圖中的位置 – Swapnil 2013-04-03 15:51:06

相關問題