2010-01-25 58 views
1

我想添加一些自定義菜單項到一些EditText實例。它們出現在菜單中,但是當我單擊按鈕時,onTextContentMenuItem方法不會被調用。如果重要的話,EditText實例在ListView中。onTextContextMenuItem不調用自定義菜單項

有關此事的任何建議?

相關代碼:

class DocumentFragment extends EditText { 

    public DocumentFragment(Context context) { 
    super(context); 
    } 

    @Override 
    public void onCreateContextMenu(ContextMenu menu) { 
    menu.add(Menu.CATEGORY_ALTERNATIVE, CONVERT_TO_H1, Menu.NONE, "Convert to H1"); 
     menu.add(Menu.CATEGORY_ALTERNATIVE, CONVERT_TO_P, Menu.NONE, "Convert to P"); 
     super.onCreateContextMenu(menu); 
    } 

    @Override 
    public boolean onTextContextMenuItem(int id) { 
    Log.i("ID", String.valueOf(id)); // The id of CONVERT_TO_{H1,P} never appears. 
    return super.onTextContextMenuItem(id); 
    } 
} 

回答

0

這將在Activity.onContextItemSelected(菜單項項目)被調用。你必須從那裏處理它。

1

這很容易......看在EditTextTextView來源後...

首先,你必須實現你的EditText類接口MenuItem.OnMenuItemClickListener

其次,你必須實現onMenuItemClick的接口,像這樣

@Override 
public boolean onMenuItemClick(MenuItem item) 
{ 
    return onTextContextMenuItem(item.getItemId()); 
} 

末,添加到每個菜單項的聽衆,

menu.add(Menu.NONE, MyMenu, Menu.CATEGORY_SECONDARY, "Menu text")).setOnMenuItemClickListener(this);