1
我有一個像網格一樣的自定義佈局。我註冊它爲contextmenu。現在,如果我長時間點擊它,我想知道用戶點擊的位置。我必須讓我的自定義佈局實現MenuInfo的權利?但是點擊位置呢?如何找出哪些網格行被點擊了contextmenu?
我有一個像網格一樣的自定義佈局。我註冊它爲contextmenu。現在,如果我長時間點擊它,我想知道用戶點擊的位置。我必須讓我的自定義佈局實現MenuInfo的權利?但是點擊位置呢?如何找出哪些網格行被點擊了contextmenu?
@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));
}
在onContextItemSelected()
,如果上下文菜單是用於AdapterView
(例如,GridView
)時,可以投的item.getMenuInfo()
對象到AdapterView.AdapterContextMenuInfo
對象。該對象有一個id
和一個position
字段。如果您使用的是CursorAdapter
,則id
是_ID
。 position
是適配器的索引。
謝謝......我已經知道如何以這種方式獲得AdapterView的ID。但我的問題是,我有一個不擴展GridView的自定義佈局。我想我必須在該佈局類中自己創建一個MenuInfo,但我不知道如何獲取點擊位置,我需要一個MenuInfo對象中的行號......: -/ – cody 2010-11-05 15:01:39
@cody:哦,哎呀,對不起,我以爲你寫過*它是* GridView'。 「但我不知道如何獲得點擊位置」 - 或者通過「AdapterView」代碼來查看它們是如何實現的,或者爲每個單元格而不是整個網格註冊一個上下文菜單。 – CommonsWare 2010-11-05 15:19:59
也許我不得不在我的類中重寫setOnCreateContextMenuListener(),或者其他東西。我需要上下文菜單才能在該位置創建一個新的孩子。 – cody 2010-11-05 15:26:01