簡體   English   中英

如何獲取觸發上下文菜單的Button視圖?

[英]How to get the Button view which triggered a Context Menu?

我正在使用上下文菜單動態創建Button視圖。 當選擇上下文菜單項時,我想要檢索觸發上下文菜單的Button視圖。

這是我創建按鈕的方式:

// Create a new button
Button buttonView = new Button(this);
// Set button text
buttonView.setText("MyButton");
// Set on click listener
buttonView.setOnClickListener( new ButtonClickHandler() );
// Register for context menu
registerForContextMenu(buttonView);

這是我創建上下文菜單的方式:

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.context_menu, menu);
}

這就是我處理所選項目的方式:

public boolean onContextItemSelected(MenuItem item) {

    // Get extra menu information about the item selected   
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();

    // 
    switch (item.getItemId()) {
    case R.id.delete:

        // Retrieve selected button text
        String btnText = ((Button) info.targetView).getText().toString();
        // etc...
        return true;
    default:
        return super.onContextItemSelected(item);
    }
}

問題是“(AdapterContextMenuInfo)item.getMenuInfo()”返回null,即沒有關於該項的額外信息。 我期待在info.targetView中獲取Button視圖。 顯然這只適用於ListView,因為AdapterView負責填充這些額外的信息。

我想我應該在“onCreateContextMenu”中做一些事情來附加這些信息。 附上此信息的示例代碼將非常受歡迎。

謝謝

用於創建上下文菜單的Button是傳遞給onCreateContextMenuView參數。

暫無
暫無

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

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