我试图在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");
}
}
});

答案 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
}
}
});