查看不同活动的分数

时间:2015-03-02 07:48:07

标签: android

我试图在3种不同的活动中查看高分。我正在使用共享偏好。 1.游戏本身以及当前得分。 2. shareIntent - 适用于社交媒体 3.高分榜。

我在第3次观看最高分时遇到问题。我想这样:如果用户点击某个类别,则必须在文本视图中显示该类别的最高分数。我把这个代码放在onFinish上我的倒计时。我只想在计时器结束后显示shareIntent。但正如您所看到的,Highscore活动也会突然出现。我想在用户进入活动本身时开始查看列表中的高分的意图,并且仅在用户单击类别时启动。这样可能吗?请承担我的密码。 TIA:)

P.S。第一个应用程序,第一次尝试,总新手:)

onFinish



@Override
		public void onFinish() {
			timer.setText("Time's Up!");

            
                topScore.setText(score.getText());
                run();

                Intent i = new Intent(TimeAttack.this,ta_TopScore.class);
                i.putExtra("ta_score", topScore.getText().toString());
                startActivity(i);

                Intent ab = new Intent(TimeAttack.this,Highscore.class);
                ab.putExtra("ta_score", topScore.getText().toString());
                startActivity(ab);
            




HighScore List



ta.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                try {
                    ta_ts = getIntent().getStringExtra("ta_score");
                    score.setText(ta_ts);
                } catch (android.content.ActivityNotFoundException ex) {
                    score.setText("FAILED HAHAHA");
                }
}
        });




1 个答案:

答案 0 :(得分:0)

好的,我想我明白了。

您需要将分数存储在本地变量中,稍后再使用它来启动Highscore活动。

private String mTopScore;

public void onFinish() {
        timer.setText("Time's Up!");
        mTopScore = score.getText().toString();

        topScore.setText(mTopScore);
        run();

        Intent i = new Intent(TimeAttack.this, ta_TopScore.class);
        i.putExtra("ta_score", mTopScore);
        startActivity(i);
    }

然后从用户需要点击以打开Highscore活动的任何地方,您可以通过意图传递它:

 goToHighScoreButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        if(mTopScore != null){
            Intent ab = new Intent(TimeAttack.this,Highscore.class);
            ab.putExtra("ta_score", mTopScore);
            startActivity(ab);
        }else{
            //do something boring
        }

    }
});