2016-07-03 2 views
0

Я хочу создать список со своими приложениями для викторины. Когда вы закончите тест, вы получите оценку, и я сохраню ее с помощью общих настроек (а также имя игрока). Затем, в ScoreActivity, я получаю имя пользователя и счет, и я хочу, чтобы они были добавлены в список. Но я не знаю, почему в списке есть только последняя оценка.оценка в виде списка из общих предисловий

Вот мой 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 (оценка)); editor.apply(); SharedPreferences sharedPref = getSharedPreferences ("userInfo", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putString ("name", editName.getText(). ToString()); editor.apply(); – AdinaB

+0

YOu сохраняет только один счет и имя пользователя. Итак, вы получаете только один счет и имя пользователя. –

ответ

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; 
    } 


    } 


} 

Теперь создадим список массива, как это:

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

Теперь, когда вы хотите сохранить счет и имя пользователя, выполните следующие действия:

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

Теперь вы должны сохранить этот список. Затем, когда вам нужно добавить другого пользователя, сначала найдите уже сохраненный список из SharedPreferences, а затем добавьте эту информацию пользователя, а затем сохраните ее снова. Наконец, ссылка this расскажет вам, как сохранить ArrayList в SharedPreferences:

+0

Спасибо за ваш ответ, но я не знаю, как сделать последнюю часть. Я не понимаю, как сохранить ArrayList в общих предпочтениях, я пытался с Gson, но он говорит, что он не может быть решен ... Я не знаю, возможно, из-за уровня API, я использую 10. – AdinaB

+0

Can Вы не изменили свой уровень api? –

+0

Я боюсь это сделать. Я думал, что создать этот табло проще, но я ошибся. Во всяком случае, еще раз спасибо за попытку помочь мне! : D – AdinaB

 Смежные вопросы

  • Нет связанных вопросов^_^