gpt4 book ai didi

每次应用程序运行时,Android 菜单只能使用一次

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:41:14 25 4
gpt4 key购买 nike

我的 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/

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