Java 向android排行榜提交分数
我终于获得了排行榜,并在我的应用程序上登录,但当我玩游戏并重新打开排行榜时,排行榜上仍然没有分数。我无法提交高分 我使用代码提交:Java 向android排行榜提交分数,java,android,google-play,Java,Android,Google Play,我终于获得了排行榜,并在我的应用程序上登录,但当我玩游戏并重新打开排行榜时,排行榜上仍然没有分数。我无法提交高分 我使用代码提交:Games.leadboard.submitScoreImmediate(getApiClient(),String.valueOf(R.String.number\u guesses\u leadboard),oldScore) 我的OnCreate: @Override protected void onCreate(Bundle savedInstan
Games.leadboard.submitScoreImmediate(getApiClient(),String.valueOf(R.String.number\u guesses\u leadboard),oldScore)
我的OnCreate:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game_over);
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API).addScope(Plus.SCOPE_PLUS_LOGIN)
.addApi(Games.API).addScope(Games.SCOPE_GAMES)
// add other APIs and scopes here as needed
.build();
int newScore = GameOver.score;
SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
int oldScore = prefs.getInt("key", 0);
if (newScore > oldScore) {
SharedPreferences.Editor edit = prefs.edit();
edit.putInt("key", newScore);
edit.commit();
} else {
EditText HighScore = (EditText) findViewById(R.id.HighScoreT);
HighScore.setText("" + oldScore);
Games.Leaderboards.submitScoreImmediate(getApiClient(), String.valueOf(R.string.number_guesses_leaderboard),oldScore);
}
R.string.number\u guesses\u排行榜最终是由android工具定义的唯一整数,该工具唯一地标识您的number\u guesses\u排行榜字符串。这称为资源标识符。例如,这可能设置为0x7f0603fb;在R.java文件中 当您执行String.valueOf(R.String.number_guesses_leadboard)时,您实际上是在将整数值0x7f0603fb转换为该数字的字符串表示形式 所以,除非“213110667”是你排行榜的id,否则我认为这不是你想要的 相反,尝试这样做(当然,假设此字符串资源的值确实是排行榜的id):
你也可以考虑在这个字符串上设置可翻译的“false”,或者移动它来做ID.xml,因为它不应该被翻译。
< P>这是一个更好的方法,我用过它,它为我工作,帮助它有用。Games.Leaderboards.submitScore(myclient,
getString(R.string.number_guesses_leaderboard),
HighScore);
Games.Leaderboards.submitScore(myclient,
getString(R.string.number_guesses_leaderboard),
HighScore);