dobrze, gdy im pracy na coś i trzeba skonfigurować pasek akcji w mojej aplikacji Zacząłem od http://developer.android.com i znalazłem to, czego szukamJak nawigować do działalności macierzystej
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);}
Ofcourse po dodaniu
<activity
android:name="com.example.myfirstapp.DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myfirstapp.MainActivity" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.MainActivity" />
</activity>
i
@Override
public void onCreate(Bundle savedInstanceState) {
...
getActionBar().setDisplayHomeAsUpEnabled(true);
}
zrobiłem wszystko ale kiedy na mój program i nacisnąć w górę przycisk na pasku akcji program wywala i tutaj jest logcat
09-04 12:54:02.087: E/AndroidRuntime(11033): FATAL EXCEPTION: main
09-04 12:54:02.087: E/AndroidRuntime(11033): java.lang.IllegalArgumentException: Activity LegendActivity does not have a parent activity name specified. (Did you forget to add the android.support.PARENT_ACTIVITY <meta-data> element in your manifest?)
09-04 12:54:02.087: E/AndroidRuntime(11033): at android.support.v4.app.NavUtils.navigateUpFromSameTask(NavUtils.java:177)
09-04 12:54:02.087: E/AndroidRuntime(11033): at com.yay.android.projects.stories.LegendActivity.onOptionsItemSelected(LegendActivity.java:44)
09-04 12:54:02.087: E/AndroidRuntime(11033): at android.app.Activity.onMenuItemSelected(Activity.java:2611)
09-04 12:54:02.087: E/AndroidRuntime(11033): at com.android.internal.widget.ActionBarView$3.onClick(ActionBarView.java:206)
09-04 12:54:02.087: E/AndroidRuntime(11033): at android.view.View.performClick(View.java:4261)
09-04 12:54:02.087: E/AndroidRuntime(11033): at android.view.View$PerformClick.run(View.java:17356)
09-04 12:54:02.087: E/AndroidRuntime(11033): at android.os.Handler.handleCallback(Handler.java:615)
09-04 12:54:02.087: E/AndroidRuntime(11033): at android.os.Handler.dispatchMessage(Handler.java:92)
09-04 12:54:02.087: E/AndroidRuntime(11033): at android.os.Looper.loop(Looper.java:137)
09-04 12:54:02.087: E/AndroidRuntime(11033): at android.app.ActivityThread.main(ActivityThread.java:4921)
09-04 12:54:02.087: E/AndroidRuntime(11033): at java.lang.reflect.Method.invokeNative(Native Method)
09-04 12:54:02.087: E/AndroidRuntime(11033): at java.lang.reflect.Method.invoke(Method.java:511)
09-04 12:54:02.087: E/AndroidRuntime(11033): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
09-04 12:54:02.087: E/AndroidRuntime(11033): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
09-04 12:54:02.087: E/AndroidRuntime(11033): at dalvik.system.NativeStart.main(Native Method)
wszystko jest tak jak mówili oczywiście Zmieniłem nazwy działań odpowiadające imionom mają jaki jest tutaj problem?
Manifest zrobiłem to ale problem był z navigateUpTo Nie użyłem intencji teraz działa , ale czy istnieje inny sposób, ale tworzenie intencji? –
możesz wypróbować jedno z wymienionych tutaj rozwiązań http://developer.android.com/training/implementing-navigation/ancestral.html –
co się stanie, jeśli nie użyję "shouldUpRecreateTask"? to nadal rozpocznie pierwszą czynność, prawda? –