2010-01-25 3 views
1

일부 EditText-instances에 일부 사용자 정의 메뉴 항목을 추가하려고합니다. 메뉴에 나타나지만 버튼을 클릭하면 onTextContentMenuItem-method가 호출되지 않습니다. EditText-instances는 중요한 경우 ListView에 있습니다.onTextContextMenuItem이 사용자 정의 메뉴 항목에서 호출되지 않았습니다.

문제에 대한 조언이 있으십니까?

관련 코드 :이 Activity.onContextItemSelected (MenuItem의 항목)에서 호출됩니다

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

. 거기에서 처리해야합니다.

1

그것은 ... 아주 쉽게

먼저 ... EditTextTextView 소스에 대한보기 후, 당신은 당신의 EditText 클래스의 인터페이스 MenuItem.OnMenuItemClickListener를 구현해야합니다.

둘째, 당신은, 각 메뉴 항목에 추가에게, 그래서

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

마지막처럼, 리스너 인터페이스에 대한 onMenuItemClick를 구현해야합니다

menu.add(Menu.NONE, MyMenu, Menu.CATEGORY_SECONDARY, "Menu text")).setOnMenuItemClickListener(this); 
관련 문제