2013-11-18 3 views
1

Я застрял и просто измучен, что я делаю неправильно здесь и что мне нужно сделать, чтобы заставить его работать правильно? БлагодаряНе удалось разрешить пункт меню onClick handler

API 11.

установка I элемент в menu.xml:

<item android:id="@+id/action_add_shindig" 
     **android:onClick="showCamera"** 
     android:icon="@drawable/shindig_new" 
     android:title="@string/shindig_new" 
     android:showAsAction="ifRoom" /> 

И в mainActivity я добавил метод выпалить намерение для камеры в другой деятельности.

/** 
* Method to handle launching the Camera view activity. 
* @param view 
*/ 
public void showCamera(View view) { 

} 

Но я получаю эту ошибку:

Не удалось разрешить пункт меню OnClick обработчик showCamera в классе com.shindiggy.shindiggy.MainActivity

ответ

0

Я не верю menuItem имеет onClick(). Используйте onOptionsItemSelected instead. Use the menuItem id`, чтобы узнать, какой предмет был нажат.

Menu Docs

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
// Handle item selection 
switch (item.getItemId()) { 
    case R.id.action_add_shindig: 
     // run your showCamera code or call that method 
     return true; 

Handling click events

То есть для OptionsMenu, но он также обсуждает ContextMenu s

3

Я решил, изменив метод к onCameraClick (MenuItem пункт) и обновление OnClick для отразите его имя "onCameraClick".

+0

Наконец нашел ответ мне нужно !!!!!!!!!!!!!!!!!!!!!!!!!!! –

0

Кажется, вы уже решили это, но это то, что беспокоило меня и, безусловно, то, что вы хотели бы прочитать в реальной документации. (Просто чтобы убедиться, что все, что исправить вы придумали работы на всех телефонах - не только ваши собственные ...)

Посмотрите здесь: http://developer.android.com/guide/topics/resources/menu-resource.html

андроида: OnClick свойство пункта в меню потребности открытый метод с параметром MenuItem.

Обратите внимание, что это разные от, скажем, кнопки!

http://developer.android.com/reference/android/widget/Button.html http://developer.android.com/reference/android/R.attr.html#onClick

Здесь метод принимает вид, как требуется его параметр.

0

Не использовать метод OnClick.

использовать, если оператор в методе ниже:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    else if (id==R.id.action_other) 
    { 
     Toast toast=Toast.makeText(this, "Other Clicked.", Toast.LENGTH_LONG); 
     toast.show(); 
    } 
    else if (id==R.id.action_Exit) 
    { 
     finish(); 
    } 
    return super.onOptionsItemSelected(item); 
} 
Смежные вопросы