当我在调试模式下运行我的代码时,我可以看到,对于值" ooy"设置了另一个内容(并且它会像这样正确)而不是值" skii"。但代码仍然启动Activity" Game.class"和Activity" Tutorial.class"也只在背景中。我该如何解决这个问题?
MainScreen:
public class MainScreen extends Activity implements OnClickListener {
public static final String PREFS_NAME = "MyPrefsFile1";
String ooy;
String skii;
super.onCreate(savedInstanceState);
@Override
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main_screen);
SharedPreferences tutoask = getSharedPreferences(PREFS_NAME, 0);
ooy = tutoask.getString("skipMessage", "NOT checked");
skii = "checked";
@Override
public void onClick(View v) {
int id = v.getId();
if (id == R.id.btn_start) {
startActivity(new Intent(this, Tutorial.class));
if (ooy.equals(skii)){
startActivity(new Intent(this, Game.class));
}
}
教程:
public class Tutorial extends Activity implements OnClickListener {
Button btn;
public CheckBox checkBox1;
String checkBoxResult = "NOT checked";
public static final String PREFS_NAME = "MyPrefsFile1";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tutorial);
btn = (Button) findViewById(R.id.startut);
btn.setOnClickListener( this);
checkBox1 = (CheckBox) findViewById(R.id.checkBox1);
}
@Override
public void onClick(View v) {
if (checkBox1.isChecked()){
checkBoxResult = "checked";
SharedPreferences tutoask = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = tutoask.edit();
editor.putString("skipMessage", checkBoxResult);
// Commit the edits!
editor.commit();
}
startActivity(new Intent(this, Game.class));
finish();
}
}
答案 0 :(得分:4)
你是说这两个变量有不同的值吗?对不起,你的判决很难理解。
如果变量不相等,它将执行if
命令中的内容,因为你有NOT(!)命令。
如果它们不相等,则执行命令:
startActivity(new Intent(this,Game.class));
我不确定你想做什么以及实际问题是什么。你有两个不相等的变量;检查两者时,它们不相等,因此执行if
内的命令。因为它应该没有声明。
答案 1 :(得分:0)
看看ooy和skii物体的equals方法。它们可能实施错误。