N
newperson
Neues Mitglied
- 1
Hallo,
ich möchte gerne den Score auf der GameOver Activity anzeigen lassen, leider weiß ich nicht was ich falsch gemacht habe.
Also die Punkte die ich im Spiel geschafft habe gebe ich bei der gameOver() als
zurück.
Diese Punkte die ich erreicht habe möchte ich auf der GameOver Classe anzeigen lassen, wenn ich auch einen neuen Rekord geschafft habe.
ich hoffe ihr könnt mich helfen!
ich möchte gerne den Score auf der GameOver Activity anzeigen lassen, leider weiß ich nicht was ich falsch gemacht habe.
Also die Punkte die ich im Spiel geschafft habe gebe ich bei der gameOver() als
Code:
private void gameOver() {
setResult(punkte);
Intent theNextIntent = new Intent(this, GameOverActivity.class);
this.startActivityForResult(theNextIntent, 1);
}
Diese Punkte die ich erreicht habe möchte ich auf der GameOver Classe anzeigen lassen, wenn ich auch einen neuen Rekord geschafft habe.
Code:
public class GameOverActivity extends Activity implements OnClickListener{
private ImageButton bReplay, bExit;
private LinearLayout namenseingabe;
private Button speichern;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gameoverscreen);
bReplay = (ImageButton) findViewById(R.id.bReplay);
bExit = (ImageButton) findViewById(R.id.bExit);
bReplay.setOnClickListener(this);
bExit.setOnClickListener(this);
namenseingabe = (LinearLayout) findViewById(R.id.namenseingabe);
speichern = (Button) findViewById(R.id.speichern);
speichern.setOnClickListener(this);
namenseingabe.setVisibility(View.INVISIBLE);
}
@Override
protected void onResume() {
super.onResume();
/*TextView tv = (TextView) findViewById(R.id.tvHighscore);
tv.setText(Integer.toString(leseHighscore()));*/
highscoreAnzeigen();
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.bReplay:
Intent newGameScreen = new Intent(getApplicationContext(), GameSecond.class);
startActivity(newGameScreen);
this.finish();
break;
case R.id.bExit:
Intent menuInetent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(menuInetent);
this.finish();
break;
case R.id.speichern:
schreibeHighscoreName();
highscoreAnzeigen();
namenseingabe.setVisibility(View.INVISIBLE);
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode==1) {
if(resultCode > leseHighscore()) {
schreibeHighscore(resultCode);
namenseingabe.setVisibility(View.VISIBLE);
}
}
}
private void highscoreAnzeigen() {
TextView tv = (TextView) findViewById(R.id.highscore);
int highscore = leseHighscore();
if(highscore>0) {
tv.setText(Integer.toString(highscore) + " " + getResources().getString(R.string.von) + " " + leseHighscoreName());
}else {
tv.setText("-");
}
}
private int leseHighscore() {
SharedPreferences pref = getSharedPreferences("GAME", 0);
return pref.getInt("HIGHSCORE", 0);
}
private String leseHighscoreName() {
SharedPreferences pref = getSharedPreferences("GAME", 0);
return pref.getString("HIGHSCORE_NSME", "");
}
private void schreibeHighscore(int highscore) {
SharedPreferences pref = getSharedPreferences("GAME", 0);
SharedPreferences.Editor editor = pref.edit();
editor.putInt("HIGHSCORE", highscore);
editor.commit();
}
private void schreibeHighscoreName() {
TextView tv = (TextView) findViewById(R.id.spielername);
String name = tv.getText().toString().trim(); //trim() vorn und hinten Leerzeichen entfernen
SharedPreferences pref = getSharedPreferences("GAME", 0);
SharedPreferences.Editor editor = pref.edit();
editor.putString("HIGHSCORE_NAME", name);
editor.commit();
}
}
ich hoffe ihr könnt mich helfen!