0

我的问题是我不知道如何将高分保存到我的 highscore.class

我的游戏的场景或流程是这样的。

用户完成测验游戏后,finish.class 将弹出并有一个按钮,如果您按下该按钮,它将自动为我的 highscore.class 设置文本分数

例如:finish.class save highscore(button)-user clicks

highscore.class 设置文本(textview) - 如果用户单击 finish.class 中的保存高分按钮,将自动显示

HIGH SCORE 10/10(用户得分)

希望你得到我的解释:)。非常感谢您对我的问题的回答。新手在这里 :) 你能给我看一个示例或源代码吗

只是为了简单。将文本设置为另一个 .class 的按钮

完成.class

public class finishextends Activity {
Button save highscore;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
setContentView(R.layout.timesup);
    // TODO Auto-generated method stub
save highscore= (Button) findViewById(R.id.save_highscore);
save highscore.setOnClickListener(new View.OnClickListener() {

    @Override   
       public void onClick(View v) {


    }
});
}

}

highscore.class 只是我的后退按钮

公共类 HighScore 扩展 Activity {

Button back;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.highscore);
    back = (Button) findViewById(R.id.btn_backk);
    back.setOnClickListener(new View.OnClickListener() {
        @Override   
       public void onClick(View v) {
            Toast.makeText(getApplicationContext(),"Back",
                    Toast.LENGTH_SHORT).show();
            Intent intent = new Intent(getApplicationContext(),MainMenu.class);
            startActivity(intent);
    }
 });    
    // TODO Auto-generated method stub
}

}

4

2 回答 2

0

您可以使用共享偏好来保存高分,然后您可以通过意图传递当前分数:

在 saveHighScore onClick 上:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(Finish.this);
if (score > preferences.getInt("score", 0)) {
     preferences.edit().putInt("score", score).commit();
}
Intent showHighScore = new Intent(Finish.this, HighScoreActivity.class);
showHighScore.putExtra("current_score", score);
startActivity(showHIghScore);

然后 onCreate 你的 HighScoreActivity

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
int currentScore = getIntent().getIntExtra("current_score", 0);
highScore = (TextView) findViewById(R.id.highscore);
highScore.setText(currentScore + " / " + preferences.getInt("score", 0));
于 2013-08-06T17:54:37.937 回答
0

目前尚不清楚您实际上想要做什么。但我的建议就在这里。

完成游戏后,您可以简单地将这个用户的分数保存在 SQLite 数据库中,并在任何您想显示的地方使用它。

其次,根据您的代码。您可以将意图中的分数传递给其他活动。当该活动开始时,您可以从意图中获得该分数。

public class finishextends Activity {
Button highscore;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
setContentView(R.layout.timesup);
    // TODO Auto-generated method stub
highscore= (Button) findViewById(R.id.save_highscore);
highscore.setOnClickListener(new View.OnClickListener() {

    @Override   
       public void onClick(View v) {
        //Pass your score to other activity through Android's intent.
       Intent intent = new Intent(getApplicationContext(),
                    HighScore.class);
       //THis highestScore variable will actually hold the score you get in this activity.
       intent.putExtra("score", highestScore);
       startActivity(intent);
    }
});
}
}

现在在您的 HighScore.java 活动类中获取这些数据。

 public class HighScore extends Activity {

Button back;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.highscore);

    int highestScore = -1;
//Now use this score variable to set anywhere.
    Bundle extras = getIntent().getExtras();

    if (extras != null) {
        highestScore = extras.getString("score");
        }


    back = (Button) findViewById(R.id.btn_backk);
    back.setOnClickListener(new View.OnClickListener() {
        @Override   
       public void onClick(View v) {
            Toast.makeText(getApplicationContext(),"Back",
                    Toast.LENGTH_SHORT).show();

    }
 });    
    // TODO Auto-generated method stub
}
}
于 2013-08-06T17:56:57.257 回答