Hor*_*rse 2 java arrays collections android multidimensional-array
只需制作一个小的Android应用程序,我需要保存一组数据,并不确定我是否应该使用对象,数组,listarray,hashmap等.
它需要能够存储字符串和整数(例如,tamename,score,category,turn of number).
它需要能够存储可变数量的团队.
目前我有尝试将其存储为对象的问题,但它不会增加得分int值.
我应该为这个实例使用哪个集合,何时应该在其他实例中使用每个集合?
编辑
确实如此,但是当我尝试访问/增加它时,我一直收到NullPointerException.我只能假设它无法从upScore正确访问团队var
所以我的onCreate是这样的
public ArrayList<Team> teams;
public int currentTeam;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
currentTeam = 0;
List<Team> teams = new ArrayList<Team>();
teams.add(new Team("Team 1"));
teams.add(new Team("Team 2"));
}
Run Code Online (Sandbox Code Playgroud)
然后在按下按钮时调用upScore.致命的例外是在这条线上
public void upScore(int team_key) {
teams.get(0).score++;
}
Run Code Online (Sandbox Code Playgroud)
这是我的Team对象
class Team {
public String name;
public int score;
public String category;
public int turns;
public Team (String teamName) {
name = teamName;
}
}
Run Code Online (Sandbox Code Playgroud)
创建自己的类,表示可以保存所需数据的对象,例如:
class Team
{
public String teamName;
public int score;
public String category;
public int numberOfTurns;
public Team(...){...} // the constructor
}
Run Code Online (Sandbox Code Playgroud)
然后使用您想要的任何数据结构,例如,arraylist:
List<Team> list = new ArrayList<Team>();
Run Code Online (Sandbox Code Playgroud)
要向列表中添加元素:
list.add(new Team(...));
Run Code Online (Sandbox Code Playgroud)
要增加列表中第一个团队的分数:
list.get(0).score++;
Run Code Online (Sandbox Code Playgroud)
等等...
| 归档时间: |
|
| 查看次数: |
5567 次 |
| 最近记录: |