Моего приложение работает отлично на моем HTD Desire:App останавливается при нажатии клавиши кнопки меню на Galaxy Samsung S3
Java фрагмент кода:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.plans_screen, menu);
return true;
}
и мой XML-файл:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/newPlan"
android:visible="true"
android:title="Neuer Plan"
android:onClick="addPlan"></item>
<item
android:id="@+id/menu_main_spinner"
android:visible="true"
android:title="Lade Plan"
android:showAsAction="always"></item>
</menu>
Но если Я запускаю его на Samsung Galaxy S3, когда приложение падает и перестает работать, когда я нажимаю Menubutton. Нужна ли Samsung Galaxy S3 специальная обработка?
Or что-то не так в моем меню?
Спасибо заранее, Том
P.S. StackTrace:
02-12 20:56:24.090: E/AndroidRuntime(25656): FATAL EXCEPTION: main
02-12 20:56:24.090: E/AndroidRuntime(25656): android.view.InflateException: Couldn't resolve menu item onClick handler addPlan in class com.example.myfitnessapp.PlansScreen
02-12 20:56:24.090: E/AndroidRuntime(25656): at android.view.MenuInflater$InflatedOnMenuItemClickListener.<init>(MenuInflater.java:218)
02-12 20:56:24.090: E/AndroidRuntime(25656): at android.view.MenuInflater$MenuState.setItem(MenuInflater.java:422)
02-12 20:56:24.090: E/AndroidRuntime(25656): at android.view.MenuInflater$MenuState.addItem(MenuInflater.java:456)
02-12 20:56:24.090: E/AndroidRuntime(25656): at android.view.MenuInflater.parseMenu(MenuInflater.java:189)
02-12 20:56:24.090: E/AndroidRuntime(25656): at android.view.MenuInflater.inflate(MenuInflater.java:111)
02-12 20:56:24.090: E/AndroidRuntime(25656): at com.example.myfitnessapp.PlansScreen.onCreateOptionsMenu(PlansScreen.java:146)
02-12 20:56:24.090: E/AndroidRuntime(25656): at android.app.Activity.onCreatePanelMenu(Activity.java:2578)
02-12 20:56:24.090: E/AndroidRuntime(25656): at
[...]
P.P.S.
I Don `T использовать метод OnClick ...
мой код выглядит следующим образом:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.newPlan:
addPlan();
break;
case R.id.menu_main_spinner:
loadPlan();
break;
}
return super.onOptionsItemSelected(item);
}
я есть методы funtcioning addPlan():
public void addPlan() {
final EditText input = new EditText(PlansScreen.this);
new AlertDialog.Builder(PlansScreen.this)
.setTitle("Erstell einen neuen Plan")
.setMessage("Wie soll der soll der Plan heissen?")
.setView(input)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
Data.plannames.add(value);
Data.trainingsplaene.add(new trainingsplan(value));
spinadapter.notifyDataSetChanged();
Data.currentPlan = Data.trainingsplaene.size()-1;
listadapter=new myListViewAdapter(PlansScreen.this,Data.trainingsplaene.get(Data.currentPlan));
myList2.setAdapter(listadapter);
listadapter.notifyDataSetChanged();
}
}).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Do nothing.
}
}).show();
}
Что такое stacktrace? –
добавил Stacktrace =) – tsrac
Я не знаю, почему я получаю inflateException - как я уже сказал, по желанию он работает гладко, на галактике s3 app stops :( – tsrac