2016-07-03 3 views
0

私のクイズアプリのスコアを含むリストを作成したいと思います。クイズを終えると、あなたはスコアを取得し、Shared Preferences(およびプレイヤーの名前)で保存します。次に、ScoreActivityでユーザー名とスコアを取得して、それらをリストに追加します。しかし、なぜリストに最後のスコアがあるのか​​わかりません。ここでsharedpreferencesのリストビューのスコア

は多分あなたは私を助けることができる、私のScoreActivity.classです:

public class ScoreActivity extends Activity { 
    ListView listView; 
    List<String> scoreList = new ArrayList<String>(); 





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



     listView=(ListView) findViewById(R.id.listView_score); 




     SharedPreferences sharedPref = getSharedPreferences("userInfo", Context.MODE_PRIVATE); 
     String name = sharedPref.getString("name",""); 

     SharedPreferences sharedPreferences = getSharedPreferences("userScore", Context.MODE_PRIVATE); 
     String score = sharedPreferences.getString("score",""); 


     scoreList.add(name+" "+score); 







      ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
        this, 
        R.layout.my_list, scoreList); 

      listView.setAdapter(arrayAdapter); 
     } 


    } 

ありがとう!

+0

スコアとユーザー名を保存するコードを教えてもらえますか? –

+0

SharedPreferences sharedPreferences = getSharedPreferences( "userScore"、Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit();editor.putString( "score"、String.valueOf(score)); editor.apply(); ; SharedPreferences sharedPref = getSharedPreferences( "userInfo"、Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putString( "name"、editName.getText()。toString()); editor.apply(); ; – AdinaB

+0

あなたは1つのスコアとユーザー名を保存しています。だから、得点とユーザー名は1つだけです。 –

答えて

0

まず、このようなカスタムクラスを作成します。

public class UserInfoClass implements Serializable{ 

    String userName; 
    String score; 

    public String getScore() { 
     return score; 
    } 

    public void setScore(String score) { 
     this.score = score; 
    } 

    public String getUserName() { 
     return userName; 
    } 

    public void setUserName(String userName) { 
     this.userName = userName; 
    } 


    } 


} 

は今、このような配列リストを作成:

UserInfoClass userobject = new UserInfoClass();   
userobject.setScore("50"); 
userobject.setUserName("Username"); 
users.add(userobject); 

今あなたが保存する必要があります:あなたは、ユーザーのスコアと名前を保存したい時はいつでも今

List<UserInfoClass> users= new ArrayList<>(); 

を、次の手順を実行しますこのリスト。その後、別のユーザーを追加する必要があるときは、まずSharedPreferencesから既に保存されているリストを取得し、そのユーザーの情報を追加してから、再度保存します。最後に、thisリンクは、SharedPreferencesにArrayListを保存する方法を教えてくれます。

+0

あなたの答えをありがとう、しかし私は最後の部分を行う方法を知らない。私は共有の設定でArrayListを保存する方法を理解していない、私はGsonを試したが、解決できないと言われている...私はおそらくAPIレベルのために、私は10を使用しているのか分からない。 – AdinaB

+0

CanあなたはあなたのAPIレベルを変えませんか? –

+0

私はそうすることを恐れています。私はそのスコアボードを作成する方が簡単だと思ったが、私は間違っていた。とにかく、私を助けようとしてくれてありがとう! :D – AdinaB