2016-07-03 3 views
0

퀴즈 앱 점수로 목록을 만들고 싶습니다. 퀴즈를 끝내면 점수를 얻고 공유 환경 설정 (및 플레이어 이름)으로 저장합니다. 그런 다음 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

하나의 점수와 사용자 이름 만 저장하고 있습니다. 따라서 점수와 사용자 이름은 하나뿐입니다. –

답변

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

나는 그렇게하는 것이 두려워요. 그 점수 판을 만드는 것이 더 쉽다고 생각했지만 틀렸어. 어쨌든, 나를 도와 주심에 다시 한번 감사드립니다 !! :디 – AdinaB

관련 문제