請告訴我什麼是「列表項ID」你想知道嗎?我懷疑這是「listitem視圖的ID爲」。可能你正在考慮「職位」,對吧?
我不知道你在哪裏調用showPopup(視圖V)從,但你也需要有傳位置:
public void showPopup(View v, int listItemPosition) {
PopupMenu popup = new PopupMenu(this, v);
popup.setOnMenuItemClickListener(this);
popup.inflate(R.menu.actions);
popup.show();
}
你的目標是要知道在這個位置onMenuItemClick(MenuItem項目)回調。
實現這一目標的最簡單的方法是創建變量「listItemPositionForPopupMenu」,存儲這個位置並在onMenuItemClick回調閱讀:
private int listItemPositionForPopupMenu;
public void showPopup(View v, int listItemPosition) {
listItemPositionForPopupMenu = listItemPosition;
PopupMenu popup = new PopupMenu(this, v);
popup.setOnMenuItemClickListener(this);
popup.inflate(R.menu.actions);
popup.show();
}
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_play:
// read the listItemPositionForPopupMenu here
return true;
default:
return false;
}
}
你也可以做到這一點在許多其他方面,比如創建你own OnMenuItemClickListener聽衆與listItemPosition變量在構造函數中創建自定義接口onMenuItemClick(MenuItem item,int listItemPosition)。或者,你可以創建一個匿名類,那麼你就需要有listItemPositionForPopupMenu成員變量:
public void showPopup(View v, final int listItemPosition) {
PopupMenu popup = new PopupMenu(this, v);
popup.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_play:
// read the listItemPosition here
return true;
default:
return false;
}
}
});
popup.inflate(R.menu.actions);
popup.show();
}
你在哪裏打電話showPopup? – pskink
@pskink在我的XML文件imageview onclick事件 – user818455
好吧...所以你的問題是不是真的關於「如何存儲一些價值和讀取onMenuItemClick回調」,而是「我已經創建onClick attrubire從XML和唐'噸知道如何獲得父列表項視圖的ID「? PopupMenu與這個問題根本沒有關係,對吧? –