使用 sharedpreferences Android 保存一个 int 并在 alertdialouge 中显示它
Saving an int and displaying it in an alertdialouge using sharedpreferences Android
嗨,我正在尝试制作游戏,我希望保存高分。从我读到的最好的使用sharedpreference。这是我的代码:
我在这里声明整数
public int score;
public int highScore;
SharedPreferences data;
public static String filename = "HighScore";
然后我在创建时调用了它。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
data = getSharedPreferences(filename, 0);
SharedPreferences.Editor editor = data.edit();
editor.putInt("Hscore", highScore);
editor.commit();
}
现在我想在提醒对话框中显示最高分
AlertDialog.Builder myAlert = new AlertDialog.Builder(this);
myAlert.setTitle("You have lost");
myAlert.setMessage("Your score was :" + score + "\n" + "Your Highscore is :" + \read highscore and display here)
.setPositiveButton("OK", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which){
dialog.dismiss();
score=0;
TextView myScore = (TextView)findViewById(R.id.scoreTxt);
String points = String.valueOf(score);
myScore.setText(points);
}
})
.create();
感谢您的帮助
public class MainActivity extends ActionBarActivity {
public int score;
public int highScore = 10;
SharedPreferences data;
public static String filename = "HighScore"; // This is shared preference name
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
data = getSharedPreferences(filename, 0);
/*SharedPreferences.Editor editor = data.edit();
editor.putInt("HighScore", highScore);
editor.apply(); // Use editor.apply() for saving in background*/
SharedPreferences data = getSharedPreferences(filename, 0);
int currentscore;
currentscore = 10;
highScore = data.getInt("Hscore", 0); // lets say highscore = 100
if(highScore>currentscore)
{
// This will store the new high score in the sharedpreferences.
SharedPreferences.Editor editor = data.edit();
editor.putInt("Hscore", highScore);
editor.commit(); // Use editor.apply() for saving in background
// after this highscore will be 100
}
}
public void generateH(View v){
Random rand = new Random();
int number = rand.nextInt(2)+1;
TextView myText = (TextView)findViewById(R.id.coinResult);
if (number == 1){
myText.setText("HEADS");
TextView myScore = (TextView)findViewById(R.id.scoreTxt);
score = score+1;
String points = String.valueOf(score);
myScore.setText(points);
}
else{
myText.setText("TAILS");
AlertDialog.Builder myAlert = new AlertDialog.Builder(this);
myAlert.setTitle("You have lost");
myAlert.setMessage("Your score was :" + score + "\n" + "Your Highscore is: " + data.getInt("Hscore", 0) )
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.create();
score = 0;
TextView myScore = (TextView) findViewById(R.id.scoreTxt);
String points = String.valueOf(score);
myScore.setText(points);
myAlert.show();
}
}
public void generateT(View v){
Random rand = new Random();
int number = rand.nextInt(2)+1;
TextView myText = (TextView)findViewById(R.id.coinResult);
if(score > highScore){
highScore = score;
}
if (number == 1){
myText.setText("HEADS");
AlertDialog.Builder myAlert = new AlertDialog.Builder(this);
myAlert.setTitle("You have lost");
myAlert.setMessage("Your score was :" + score + "\n" + "Your Highscore is :" + data.getInt("Hscore", 0))
.setPositiveButton("OK", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which){
dialog.dismiss();
}
})
.create();
score = 0;
TextView myScore = (TextView)findViewById(R.id.scoreTxt);
String points = String.valueOf(score);
myScore.setText(points);
myAlert.show();
}
else{
myText.setText("TAILS");
TextView myScore = (TextView)findViewById(R.id.scoreTxt);
score = score+1;
String points = String.valueOf(score);
myScore.setText(points);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
data = getSharedPreferences(filename, 0);
if(data!=null){
int previous_highscore = data.getInt("Hscore");
}
您可以有一个单独的 class 作为:
public class ScoreSharedPreference {
private static final String PREFS_NAME = "SCORE_PREFS_";
private static final String CURRENT_SCORE = "CURRENT_SCORE";
SharedPreferences prefs;
Context context;
public ScoreSharedPreference(Context context) {
this.context=context;
prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
}
public void saveScore(int score) {
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(CURRENT_SCORE, score);
editor.commit();
}
public int getScore() {
return prefs.getInt(CURRENT_SCORE, 0);
}
}
过程很简单。
使用共享首选项的步骤:
第 1 步:您需要创建共享偏好变量以保存高分。
第2步:需要将当前高分保存到共享偏好变量中。
第 3 步:在需要时检索高分。
试试下面的代码:
public int score;
public int highScore;
SharedPreferences data;
public static String filename = "HighScore"; // This is shared preference name
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化共享首选项
data = getSharedPreferences(filename, 0);
// 这是你insert/store共享首选项中的高分值
SharedPreferences.Editor editor = data.edit();
editor.putInt("Hscore", highScore);
editor.commit(); // Use editor.apply() for saving in background
} // on create ends
从共享首选项获取值 - 语法
SharedPreferences sp = getSharedPreferences(filename, 0);
int value = data.getInt("KEY VALUE", "DEFAULT VALUE"); // If there is no shared preference defined for the given key value default value is returned.
在警报对话框中显示高分
SharedPreferences data = getSharedPreferences(filename, 0);
AlertDialog.Builder myAlert = new AlertDialog.Builder(this);
myAlert.setTitle("You have lost");
myAlert.setMessage("Your score was :" + score + "\n" + "Your Highscore is :" + data.getInt("Hscore", 0)) // refer syntax
.setPositiveButton("OK", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which){
dialog.dismiss();
score=0;
TextView myScore = (TextView)findViewById(R.id.scoreTxt);
String points = String.valueOf(score);
myScore.setText(points);
}
})
.create();
资源:
参考上面的链接..!!这会很有帮助。
这会帮助你..!!试试看...
更新答案
public void generateH(View v){
Random rand = new Random();
int number = rand.nextInt(2)+1;
TextView myText = (TextView)findViewById(R.id.coinResult);
if (number == 1){
myText.setText("HEADS");
TextView myScore = (TextView)findViewById(R.id.scoreTxt);
score = score+1;
String points = String.valueOf(score);
myScore.setText(points);
if(highScore>points)
{
// This will store the new high score in the sharedpreferences.
SharedPreferences.Editor editor = data.edit();
editor.putInt("Hscore", highScore);
editor.commit(); // Use editor.apply() for saving in background
// after this highscore will be 100
}else
{
SharedPreferences.Editor editor = data.edit();
editor.putInt("Hscore", points);
editor.commit();
}
}
else{
myText.setText("TAILS");
score = 0;
TextView myScore = (TextView) findViewById(R.id.scoreTxt);
String points = String.valueOf(score);
myScore.setText(points);
if(highScore>points)
{
// This will store the new high score in the sharedpreferences.
SharedPreferences.Editor editor = data.edit();
editor.putInt("Hscore", highScore);
editor.commit(); // Use editor.apply() for saving in background
// after this highscore will be 100
}else
{
SharedPreferences.Editor editor = data.edit();
editor.putInt("Hscore", points);
editor.commit();
}
AlertDialog.Builder myAlert = new AlertDialog.Builder(this);
myAlert.setTitle("You have lost");
myAlert.setMessage("Your score was :" + score + "\n" + "Your Highscore is: " + data.getInt("Hscore", 0) )
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.create();
myAlert.show();
}
}
嗨,我正在尝试制作游戏,我希望保存高分。从我读到的最好的使用sharedpreference。这是我的代码:
我在这里声明整数
public int score;
public int highScore;
SharedPreferences data;
public static String filename = "HighScore";
然后我在创建时调用了它。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
data = getSharedPreferences(filename, 0);
SharedPreferences.Editor editor = data.edit();
editor.putInt("Hscore", highScore);
editor.commit();
}
现在我想在提醒对话框中显示最高分
AlertDialog.Builder myAlert = new AlertDialog.Builder(this);
myAlert.setTitle("You have lost");
myAlert.setMessage("Your score was :" + score + "\n" + "Your Highscore is :" + \read highscore and display here)
.setPositiveButton("OK", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which){
dialog.dismiss();
score=0;
TextView myScore = (TextView)findViewById(R.id.scoreTxt);
String points = String.valueOf(score);
myScore.setText(points);
}
})
.create();
感谢您的帮助
public class MainActivity extends ActionBarActivity {
public int score;
public int highScore = 10;
SharedPreferences data;
public static String filename = "HighScore"; // This is shared preference name
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
data = getSharedPreferences(filename, 0);
/*SharedPreferences.Editor editor = data.edit();
editor.putInt("HighScore", highScore);
editor.apply(); // Use editor.apply() for saving in background*/
SharedPreferences data = getSharedPreferences(filename, 0);
int currentscore;
currentscore = 10;
highScore = data.getInt("Hscore", 0); // lets say highscore = 100
if(highScore>currentscore)
{
// This will store the new high score in the sharedpreferences.
SharedPreferences.Editor editor = data.edit();
editor.putInt("Hscore", highScore);
editor.commit(); // Use editor.apply() for saving in background
// after this highscore will be 100
}
}
public void generateH(View v){
Random rand = new Random();
int number = rand.nextInt(2)+1;
TextView myText = (TextView)findViewById(R.id.coinResult);
if (number == 1){
myText.setText("HEADS");
TextView myScore = (TextView)findViewById(R.id.scoreTxt);
score = score+1;
String points = String.valueOf(score);
myScore.setText(points);
}
else{
myText.setText("TAILS");
AlertDialog.Builder myAlert = new AlertDialog.Builder(this);
myAlert.setTitle("You have lost");
myAlert.setMessage("Your score was :" + score + "\n" + "Your Highscore is: " + data.getInt("Hscore", 0) )
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.create();
score = 0;
TextView myScore = (TextView) findViewById(R.id.scoreTxt);
String points = String.valueOf(score);
myScore.setText(points);
myAlert.show();
}
}
public void generateT(View v){
Random rand = new Random();
int number = rand.nextInt(2)+1;
TextView myText = (TextView)findViewById(R.id.coinResult);
if(score > highScore){
highScore = score;
}
if (number == 1){
myText.setText("HEADS");
AlertDialog.Builder myAlert = new AlertDialog.Builder(this);
myAlert.setTitle("You have lost");
myAlert.setMessage("Your score was :" + score + "\n" + "Your Highscore is :" + data.getInt("Hscore", 0))
.setPositiveButton("OK", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which){
dialog.dismiss();
}
})
.create();
score = 0;
TextView myScore = (TextView)findViewById(R.id.scoreTxt);
String points = String.valueOf(score);
myScore.setText(points);
myAlert.show();
}
else{
myText.setText("TAILS");
TextView myScore = (TextView)findViewById(R.id.scoreTxt);
score = score+1;
String points = String.valueOf(score);
myScore.setText(points);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
data = getSharedPreferences(filename, 0);
if(data!=null){
int previous_highscore = data.getInt("Hscore");
}
您可以有一个单独的 class 作为:
public class ScoreSharedPreference {
private static final String PREFS_NAME = "SCORE_PREFS_";
private static final String CURRENT_SCORE = "CURRENT_SCORE";
SharedPreferences prefs;
Context context;
public ScoreSharedPreference(Context context) {
this.context=context;
prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
}
public void saveScore(int score) {
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(CURRENT_SCORE, score);
editor.commit();
}
public int getScore() {
return prefs.getInt(CURRENT_SCORE, 0);
}
}
过程很简单。 使用共享首选项的步骤:
第 1 步:您需要创建共享偏好变量以保存高分。
第2步:需要将当前高分保存到共享偏好变量中。
第 3 步:在需要时检索高分。
试试下面的代码:
public int score;
public int highScore;
SharedPreferences data;
public static String filename = "HighScore"; // This is shared preference name
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化共享首选项
data = getSharedPreferences(filename, 0);
// 这是你insert/store共享首选项中的高分值
SharedPreferences.Editor editor = data.edit();
editor.putInt("Hscore", highScore);
editor.commit(); // Use editor.apply() for saving in background
} // on create ends
从共享首选项获取值 - 语法
SharedPreferences sp = getSharedPreferences(filename, 0);
int value = data.getInt("KEY VALUE", "DEFAULT VALUE"); // If there is no shared preference defined for the given key value default value is returned.
在警报对话框中显示高分
SharedPreferences data = getSharedPreferences(filename, 0);
AlertDialog.Builder myAlert = new AlertDialog.Builder(this);
myAlert.setTitle("You have lost");
myAlert.setMessage("Your score was :" + score + "\n" + "Your Highscore is :" + data.getInt("Hscore", 0)) // refer syntax
.setPositiveButton("OK", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which){
dialog.dismiss();
score=0;
TextView myScore = (TextView)findViewById(R.id.scoreTxt);
String points = String.valueOf(score);
myScore.setText(points);
}
})
.create();
资源:
参考上面的链接..!!这会很有帮助。
这会帮助你..!!试试看...
更新答案
public void generateH(View v){
Random rand = new Random();
int number = rand.nextInt(2)+1;
TextView myText = (TextView)findViewById(R.id.coinResult);
if (number == 1){
myText.setText("HEADS");
TextView myScore = (TextView)findViewById(R.id.scoreTxt);
score = score+1;
String points = String.valueOf(score);
myScore.setText(points);
if(highScore>points)
{
// This will store the new high score in the sharedpreferences.
SharedPreferences.Editor editor = data.edit();
editor.putInt("Hscore", highScore);
editor.commit(); // Use editor.apply() for saving in background
// after this highscore will be 100
}else
{
SharedPreferences.Editor editor = data.edit();
editor.putInt("Hscore", points);
editor.commit();
}
}
else{
myText.setText("TAILS");
score = 0;
TextView myScore = (TextView) findViewById(R.id.scoreTxt);
String points = String.valueOf(score);
myScore.setText(points);
if(highScore>points)
{
// This will store the new high score in the sharedpreferences.
SharedPreferences.Editor editor = data.edit();
editor.putInt("Hscore", highScore);
editor.commit(); // Use editor.apply() for saving in background
// after this highscore will be 100
}else
{
SharedPreferences.Editor editor = data.edit();
editor.putInt("Hscore", points);
editor.commit();
}
AlertDialog.Builder myAlert = new AlertDialog.Builder(this);
myAlert.setTitle("You have lost");
myAlert.setMessage("Your score was :" + score + "\n" + "Your Highscore is: " + data.getInt("Hscore", 0) )
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.create();
myAlert.show();
}
}