Android 我已经解决了如何显示前三名的得分,而不是前三名球员各自的名字

Android 我已经解决了如何显示前三名的得分,而不是前三名球员各自的名字,android,Android,这是显示三个最高分数的jave文件,但如果我想显示三个最高分数的名字,我不知道代码是什么。我是否使用三个新字符串为高分者编写相同的条件结构?我不想使用谷歌排行榜,我想遵循高分时使用的相同结构 import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.content.Context; import android.content.Intent; import android.v

这是显示三个最高分数的jave文件,但如果我想显示三个最高分数的名字,我不知道代码是什么。我是否使用三个新字符串为高分者编写相同的条件结构?我不想使用谷歌排行榜,我想遵循高分时使用的相同结构

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.content.SharedPreferences;


public class recordofscores extends AppCompatActivity {
    private Button btn_logout;
    private TextView tvEmail, yourscore, highestscore;
    private Session session;

    public static final String MyPREFERENCES="MyPrefs";
    public static final String Name="nameKey";
    SharedPreferences sharedpreferences;
    public static final String savedname = "scorerOne";
    String name;

    int lastScore;
    int best1,best2, best3;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_recordofscores);


        sharedpreferences=getSharedPreferences (MyPREFERENCES, Context.MODE_PRIVATE);



        yourscore=(TextView) findViewById (R.id.yourscore);
        highestscore=(TextView) findViewById (R.id.highestscore);

        tvEmail = (TextView) findViewById (R.id.tvEmail);

        tvEmail.setText (sharedpreferences.getString (Name, "n") + " is logged in");
        SharedPreferences preferences=getSharedPreferences ("PREFS", 0);
        lastScore=preferences.getInt ("lastScore", 0);
        best1=preferences.getInt ("best1", 0);
        best2=preferences.getInt ("best2", 0);
        best3=preferences.getInt ("best3", 0);

        if (lastScore > best3) {
            best3=lastScore;
            SharedPreferences.Editor editor=preferences.edit ( );
            editor.putInt ("best3", best3);
            editor.apply ( );
        }
        if (lastScore > best2) {
            int temp=best2;
            best2=lastScore;
            best3=temp;
            SharedPreferences.Editor editor=preferences.edit ( );
            editor.putInt ("best3", best3);
            editor.putInt ("best2", best2);
            editor.apply ( );
        }
        if (lastScore > best1) {
            int temp=best1;
            best1=lastScore;
            best2=temp;
            SharedPreferences.Editor editor=preferences.edit ( );
            editor.putInt ("best2", best2);
            editor.putInt ("best1", best1);
            editor.apply ( );
        }



        yourscore.setText (sharedpreferences.getString (Name, "n") + " - " + lastScore);
highestscore.setText("1 - " + best1 +" \n" +
                     "2 - " + best2 + "\n" +
                      "3 - " + best3 );





        session = new Session(this);
        if(!session.loggedin()){
            logout();
        }
        btn_logout = (Button)findViewById(R.id.btn_logout);
        btn_logout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                logout();
            }
        });
    }

    private void logout(){
        session.setLoggedin(false);
        finish();
        startActivity(new Intent(recordofscores.this,LoginActivity.class));
    }
}`

您可以将三个
字符串
保存在您的
SharedReferences
中,或者使用
Room
将数据保存在本地数据库中
Room
将为您提供一种保存表格而不是单个对象的简单方法,因此,如果您希望保存更多参数或更多分数(比如最后100个分数),那么就很容易了

不要为此使用共享pref。您需要某种类型的数据库来存储此信息。感谢您的回答Hadas-如果我创建了三个新字符串,它们是否如下-get preferences-topscorer1=preferences.getString(“topscorer1”,null)以及保存到共享首选项是否为-putString(“topscorer1”,topscorer1)?是。。但我建议使用
房间
。如果您想了解有关首选项的更多信息,请访问以下链接: