Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中实现主菜单链接_Android_Menu_Android Activity - Fatal编程技术网

在android中实现主菜单链接

在android中实现主菜单链接,android,menu,android-activity,Android,Menu,Android Activity,我正在开发一个多语言的Android应用程序。在这里,我使用古吉拉特语和印地语等地区语言的字体。现在我想在每个页面上添加一个主菜单链接,主菜单页面除外。我了解到,FLAG_ACTIVITY_CLEAR_TOP用于清除活动堆栈,这样主活动就不会位于顶部 但当我这样做时,它会再次启动主菜单活动,重置用户所做的语言选择。 因此,语言被重置为默认值(本例中为英语) 我希望主菜单上的活动应该放在最前面,只需在主菜单上取消其他活动即可 我使用以下代码进行导航: Intent i=new Intent(thi

我正在开发一个多语言的Android应用程序。在这里,我使用古吉拉特语和印地语等地区语言的字体。现在我想在每个页面上添加一个主菜单链接,主菜单页面除外。我了解到,FLAG_ACTIVITY_CLEAR_TOP用于清除活动堆栈,这样主活动就不会位于顶部

但当我这样做时,它会再次启动主菜单活动,重置用户所做的语言选择。 因此,语言被重置为默认值(本例中为英语)

我希望主菜单上的活动应该放在最前面,只需在主菜单上取消其他活动即可

我使用以下代码进行导航:

Intent i=new Intent(this,MainActivity1.class);
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    finish();

任何帮助都是值得的。

为什么不将当前选定的语言保存在
SharedReference
文件中,并在主活动开始时检查它?或者,您可以对
清单中的活动使用
android:noHistory=“true”
属性,或者使用Intent标志
flag\u ACTIVITY\u NO\u HISTORY
,只需调用
finish()
,而不是启动另一个Intent,打开
main activity1
时,您将使用
标志\u ACTIVITY\u CLEAR\u TOP来清除它。我不相信问题出在
CLEAR\u TOP
标志上。但是如果我错了,有人可以纠正我。在前面的评论中使用替代方法的缺点是,android:noHistory=“true”的活动永远不会出现在活动堆栈中。SharedReference是否以持久化方式存储用户选择?我的意思是,如果用户关闭应用程序并重新启动它,那么它将显示其最后的选择?是的。SharedReference是持久存储的。无论应用程序启动/重新启动多少次,或设备关闭/重新启动多少次。它们总是保存在
/data/data/YOU\u PACKAGE\u NAME/shared\u prefs
文件夹中。这太有用了。在悉达尔勒有很多。。