Android 按“设置”按钮后,我的首选项不会显示
所以,我目前正在尝试编辑android的api提供的蛇游戏。我试图使它,以便在按下菜单->设置->恢复,它将恢复游戏。但是,在我按下设置后,它不会一直继续,而是退出并从那里继续。我正在使用意图恢复该程序Android 按“设置”按钮后,我的首选项不会显示,android,android-preferences,Android,Android Preferences,所以,我目前正在尝试编辑android的api提供的蛇游戏。我试图使它,以便在按下菜单->设置->恢复,它将恢复游戏。但是,在我按下设置后,它不会一直继续,而是退出并从那里继续。我正在使用意图恢复该程序 public boolean onOptionsSelected(MenuItem menu){ switch(menu.getItemId()){ case R.id.settings: Intent prefActivity = new Intent(
public boolean onOptionsSelected(MenuItem menu){
switch(menu.getItemId()){
case R.id.settings:
Intent prefActivity = new Intent(this,MyPreferences.class);
startActivityForResult(prefActivity, KEY_RESUME_RESULT);
return true;
}
public void onActivityResult(int requestCode, int resultCode, Intent data){
switch(requestCode){
case KEY_RESUME_RESULT:
if(resultCode==RESULT_OK){
if(mSnakeView.getMode() == SnakeView.PAUSE)
this.mSnakeView.setMode(SnakeView.RUNNING);
}
}
}
这在MyPreferences.class中
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.snake_preferences);
resume = (Preference)findPreference(getString(R.string.key_resume));
onPreferenceTreeClick(this.getPreferenceScreen(),resume);
}
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferencescreen,Preference preference){
super.onPreferenceTreeClick(preferencescreen,preference);
Intent intent = new Intent();
if(preference == resume){
setResult(Activity.RESULT_OK,intent);
finish();
}
return true;
}
您在
onCreate()
中明确地调用了恢复游戏的方法,这可能就是游戏在启动设置后立即恢复的原因。我建议不要使用该方法,而是根据您的喜好设置一个单击侦听器:
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.snake_preferences);
resume = (Preference)findPreference(getString(R.string.key_resume));
resume.setOnPreferenceClickListener (new Preference.OnPreferenceClickListener()
{
@Override
public void onPreferenceClick(Preference preference)
{
setResult(Activity.RESULT_OK,intent);
finish();
}
});
}
此外,根据您的代码onoptionselected()
没有明确暂停游戏(但是,考虑到将调用onPause()
,用户界面应该暂停),您可能需要对此进行研究