【问题标题】:saving highscore to other class将高分保存到其他班级
【发布时间】:2013-08-06 17:06:30
【问题描述】:

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

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

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

例子是: 完成.class 保存高分(按钮)-用户点击次数

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

高分 10/10(用户评分)

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

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

finish.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
}

}

【问题讨论】:

    标签: android class save settext


    【解决方案1】:

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

    在 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));
    

    【讨论】:

    • 我怎样才能让它像每次点击按钮结果将是 8/10 十分之八
    【解决方案2】:

    不清楚你真正想要做什么。但我的建议就在这里。

    完成游戏后,您可以简单地将这个用户的分数保存在 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
    }
    }
    

    【讨论】:

    • 我可以在tomcat中使用它吗?
    • if (extras != null) {highestScore = extras.getString("score");-我在这一行有错误}
    • 在您的情况下,您传递的值是整数类型,因此请使用:highestScore = extras.getInt("score");
    • 改为使用:extras.getDouble("score");这适用于 Integer 或 Double 两种类型。
    • 如何设置文本分数?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-13
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多