gpt4 book ai didi

java - 应用程序设置?我必须使用 startActivity 吗?

转载 作者:行者123 更新时间:2023-11-30 03:51:29 25 4
gpt4 key购买 nike

我终于完成了我正在开发的应用程序。这是一款篮球记分牌应用程序。它完全按预期工作,但在开发阶段,我已将所有变量硬编码在其中。这对我来说很好,但如果此应用程序对其他人有用,则需要能够更改一些变量。

我认为最好的方法是使用选项菜单。当用户单击菜单中的“设置”选项时,我的菜单出现在屏幕上。我创建了一个名为 SettingsActivity 的新 Activity ,并能够通过使用 startActivity(R.layout.settings) 方法显示此 XML 布局。但是,当我点击我设备上的“返回”按钮时,它会退出程序。

我对一些事情感到好奇...我的理解是,如果我使用 startActivity() 方法,它基本上会删除我当前的 Activity 并转到新的 Activity。但是,在极少数情况下,用户会在游戏进行到一半时执行此操作,我不知道它会清除所有内容。我需要它从用户点击后退按钮时停止的地方继续。

我应该如何着手完成这项工作?

最佳答案

您应该将“设置” Activity 作为 PreferenceActivity (http://developer.android.com/reference/android/preference/PreferenceActivity.html) 而不是普通 Activity ,假设它不太复杂。这真的取决于您的首选项屏幕需要什么。

public class Prefs extends PreferenceActivity{

@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}

在您的 res/menu 文件夹中,您可以有一个 menu.xml 对应于用户按下菜单按钮时将显示的内容:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/miPrefs" android:title="Preferences" android:icon="@android:drawable/ic_menu_preferences"></item>
</menu>

然后你可以用这个把它和你的主 Activity 联系起来:

@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.menu,menu);
return true;
}

最后,在您的主 Activity 中,您可以添加:

@Override
public boolean onMenuItemSelected(int featureId, MenuItem item){
switch(item.getItemId()){
case R.id.miPrefs:
startActivity(new Intent().setClass(this,Prefs.class));
break;
}
}

这整个过程将允许您打开一个 PreferenceActivity(它将在您的 Main Activity 上打开)然后一旦您返回,您将回到您未更改的 MainActivity。

如果这不是您正在寻找的方法,您将必须使用 onSaveInstanceState 来完成它,并在 savedInstanceState != null 时在 onCreate 中恢复它。

关于java - 应用程序设置?我必须使用 startActivity 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14087122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com