我的 Android 应用遇到了一个奇怪的问题。我的主要 Activity 有一个菜单附加到菜单按钮。问题是,菜单按钮只工作一次。一旦按下,应用程序必须在菜单按钮再次工作之前重新启动。
(清理过的)代码是:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
startActivity(new Intent(this, PreferencesActivity.class));
return(super.onCreateOptionsMenu(menu));
}
@Override
public void onBackPressed() {
this.finish();
}
@Override
public void onDestroy() {
super.onDestroy();
this.finish();
}
@Override
public void onStop() {
super.onStop();
this.finish();
}
偏好 Activity 看起来像
public class PreferencesActivity extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
addPreferencesFromResource(R.xml.preferences);
}
@Override
public void onResume() {
super.onResume();
}
@Override
public void onStop() {
super.onStop();
this.finish();
}
@Override
public void onBackPressed() {
this.finish();
}
}
我应该如何解决这个问题?
TIA
最佳答案
onCreateOptionsMenu
只调用一次,就在您第一次打开 OptionsMenu 之前。
而是使用 onPrepareOptionsMenu
调用您的 startActivity(new Intent(this, PreferencesActivity.class));
onPrepareOptionsMenu
在您每次单击菜单按钮时调用。
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
startActivity(new Intent(this, PreferencesActivity.class));
return super.onPrepareOptionsMenu(menu);
}
关于每次应用程序运行时,Android 菜单只能使用一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9581918/