英文:
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语言的经验与见解,让所有开发者获益!
评论