我对应用程序开发非常陌生(四天后),我正在创建具有各个级别的逻辑数学游戏。 Level1正在发送具有字符串值“ 1”的SharedPreferences密钥“ currentlevel”。我下面的代码有效,如果我已经击败了Level1,则“播放”按钮会将我发送到Level2。
我的问题是,我必须双击“播放”按钮,而不是通常的单击。我怀疑它是因为我有2个View.OnClickListeners,但是删除其中之一会使它根本无法工作。非常感谢您对解决此问题的任何帮助。
Button button1 = (Button) findViewById(R.id.playbutton);
final Button button3 = (Button) findViewById(R.id.playbutton);
SharedPreferences result = getSharedPreferences("level", MODE_PRIVATE);
final String current = result.getString("currentlevel", "0");
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent play2 = new Intent(MainActivity.this, Level2.class);
Intent play1 = new Intent(MainActivity.this, Level1.class);
if (current == "1")
startActivity(play2);
else if (current == "0")
startActivity(play1);
}
});
}});
没关系,我只是通过重新排列条件来使它起作用。如果其他人遇到类似的问题,请在下面发布代码:
final Button button3 = (Button) findViewById(R.id.playbutton);
final SharedPreferences sharedPref = getSharedPreferences("level", MODE_PRIVATE);
final String current = sharedPref.getString("currentlevel", "sick");
if(current == ("sicks"))
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent play2 = new Intent(MainActivity.this, Level2.class);
startActivity(play2);
}});
else if(current == ("sick"))
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent play1 = new Intent(MainActivity.this, Level1.class);
startActivity(play1);
}
});