场景 我点击退出并返回主菜单然后退出应用程序,一旦我再次启动应用程序,我可以点击“继续” “从主菜单返回到我离开的游戏或点击新游戏并重新开始。
问题 当我删除onclick方法时,共享首选项代码有效但我只想让它在我点击“继续”时工作,否则无论什么按钮都会读取它从主菜单中按下。
如何让它仅从“继续”按钮读取共享首选项,并在点击新游戏按钮时启动忽略共享首选项的新游戏。
例如。
public class GMActivity extends Activity {
Button conButton;
Button nButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
conButton = (Button) findViewById(R.id.ConGame);
nButton = (Button) findViewById(R.id.NGame);
// Continue Button
conButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Bundle setting = getIntent().getBundleExtra("setting");
Intent newIntent = new Intent(GMaActivity.this,
GActivity.class);
newIntent.putExtra("setting", setting);
startActivity(newIntent);
}
});
// New Game Button
nButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(GMActivity.this,
GActivity.class);
startActivity(intent);
}
});
public class GActivity extends ActionBarActivity {
private int RWIDTH = 70;
// + a whole bunch of other unrelated stuff that i cut-out to make viewing easier.
public static final String PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button CntButton = (Button) findViewById(R.id.ConGame);
CntButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
RWIDTH = settings.getInt("RWIDTH", RWIDTH);
}
});
}
protected void onStop(){
super.onStop();
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("RWIDTH", RWIDTH);
editor.commit();
}
答案 0 :(得分:0)
您可以根据按钮单击添加额外的布尔标志以继续或新游戏。如果您需要更多说明,请发布完整代码
答案 1 :(得分:0)
使用布尔标志设置是否应在游戏活动中使用RWIDTH
,如下所示:
conButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Bundle setting = getIntent().getBundleExtra("setting");
Intent newIntent = new Intent(GMaActivity.this,
GActivity.class);
newIntent.putExtra("useRWIDTH", true);
startActivity(newIntent);
}
});
// New Game Button
nButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(GMActivity.this,
GActivity.class);
intent.putExtra("useRWIDTH", false);
startActivity(intent);
}
});
然后在GMaActivity类中使用
Intent intent = getIntent();
boolean useRWIDTH = intent.getBooleanExtra("useRWIDTH", false);
然后根据useRWIDTH的值,您可以选择使用或不使用SharedPreferences