从 sharedpreferences 在列表视图中得分
score in listview from sharedpreferences
我想为我的测验应用程序创建一个包含分数的列表。当你完成测验时,你会得到一个分数,我用共享首选项(以及玩家的名字)保存它。然后,在 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);
}
}
谢谢!
首先,像这样创建一个自定义 Class ;
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 检索已保存的列表,然后添加该用户的信息,然后再次保存。最后,thislink会告诉你如何在SharedPreferences中保存一个ArrayList:
我想为我的测验应用程序创建一个包含分数的列表。当你完成测验时,你会得到一个分数,我用共享首选项(以及玩家的名字)保存它。然后,在 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);
}
}
谢谢!
首先,像这样创建一个自定义 Class ;
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 检索已保存的列表,然后添加该用户的信息,然后再次保存。最后,thislink会告诉你如何在SharedPreferences中保存一个ArrayList: