英文:
Using a menu resource to start new activities in Android?
问题
我在我的Android应用程序中有一个菜单资源文件,我希望它作为底部导航栏出现在应用程序的所有屏幕上。
    <item
        android:id="@+id/navigation_home"
        android:icon="@drawable/home_nav"
        android:title="@string/home"
        android:onClick="goHome"/>
    <item
        android:id="@+id/navigation_timer"
        android:icon="@drawable/timer_nav"
        android:title="@string/timer"
        android:onClick="goToTimer"/>
    <item
        android:id="@+id/navigation_myAlarms"
        android:icon="@drawable/myalarms_nav"
        android:title="@string/my_alarms"
        android:onClick="goToAlarms"
        />
    <item
        android:id="@+id/navigation_settings"
        android:icon="@drawable/settings_nav"
        android:title="@string/preferences"
        android:onClick="goSettings"
        />
为了触发新的屏幕,我使用了android:onClick属性链接到了一些方法,这些方法我放在了我的MainActivity中。
    public void goHome(MenuItem m) {
        Intent h = new Intent(this, MainActivity.class);
        startActivity(h);
    }
    public void goToTimer(MenuItem m) {
        Intent t = new Intent(this, TimerActivity.class);
        startActivity(t);
    }
    public void goToAlarms(MenuItem m) {
        Intent a = new Intent(this, MyAlarms.class);
        startActivity(a);
    }
    public void goSettings(MenuItem m) {
        Intent s = new Intent(this, SettingsActivity.class);
        startActivity(s);
    }
这可以用于导航到新的屏幕,但如果这些屏幕也有操作栏(action bars),则会崩溃。我不太确定为什么会这样,但我知道我做错了些什么。有人能帮忙吗?谢谢。
英文:
I have a menu resource file in my Android app which I want to appear on all screens in my application as a Bottom Navigation Bar.
    <item
        android:id="@+id/navigation_home"
        android:icon="@drawable/home_nav"
        android:title="@string/home"
        android:onClick="goHome"/>
    <item
        android:id="@+id/navigation_timer"
        android:icon="@drawable/timer_nav"
        android:title="@string/timer"
        android:onClick="goToTimer"/>
    <item
        android:id="@+id/navigation_myAlarms"
        android:icon="@drawable/myalarms_nav"
        android:title="@string/my_alarms"
        android:onClick="goToAlarms"
        />
    <item
        android:id="@+id/navigation_settings"
        android:icon="@drawable/settings_nav"
        android:title="@string/preferences"
        android:onClick="goSettings"
        />
In order to fire the new screens I have used the android:onClick attribute to link to some methods which I put in my MainActivity.
    public void goHome(MenuItem m) {
        Intent h = new Intent(this, MainActivity.class);
        startActivity(h);
    }
    public void goToTimer(MenuItem m) {
        Intent t = new Intent(this, TimerActivity.class);
        startActivity(t);
    }
    public void goToAlarms(MenuItem m) {
        Intent a = new Intent(this, MyAlarms.class);
        startActivity(a);
    }
    public void goSettings(MenuItem m) {
        Intent s = new Intent(this, SettingsActivity.class);
        startActivity(s);
    }
This works to navigate to the new screens, but it will crash if they have action bars too. I'm not sure why this is but I know I'm doing something wrong. Can anybody help? Thanks
专注分享java语言的经验与见解,让所有开发者获益!

评论