2012-08-27 9 views
1

그냥 작은 안드로이드 애플 리케이션을 만들고, 나는 데이터의 컬렉션을 개최해야하고 개체, 배열, listarray, 해시 맵 등을 사용해야하는지 잘 모르겠다.Android 콜렉션을 사용해야합니까?

문자열을 저장할 수 있어야합니다. 정수 (예 : 탐미 네임, 점수, 카테고리, 턴 수).

다양한 팀을 저장할 수 있어야합니다.

현재 개체로 저장할 때 문제가 발생하지만 스코어 int 값을 증가시키지 않습니다.

이 인스턴스에는 어떤 컬렉션을 사용해야합니까? 그리고 다른 인스턴스에서 각각 어떤 컬렉션을 사용해야합니까? 좋아

편집

은 그래서했지만 /를 증가 난 내가 액세스하려고하면 NullPointerException이 점점 계속. 난 단지 그것이 버튼을 누르면 다음 upScore가 호출되는이

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")); 

} 

같은 VAR 제대로

upScore

에서 그래서 내에서 onCreate가 팀에 액세스하지 못할 가정 할 수있다. 치명적인 예외는 당신이 필요로하는 데이터를 저장할 수있는 객체를 나타냅니다 자신의 클래스를 만들기 내 팀 객체

class Team { 
    public String name; 
    public int score; 
    public String category; 
    public int turns; 

    public Team (String teamName) { 
     name = teamName; 
    } 
} 
+1

스토어, 매치 플레이? – user802421

+1

적절한 컬렉션을 선택하기 전에 약간의 독서를 권합니다. 각자의 장점을 알게되면 어느 것이 가장 적합한지 이해하게 될 것입니다. – Egor

답변

5

이 줄

public void upScore(int team_key) { 
    teams.get(0).score++; 
} 

을에 그리고 여기, 뭔가 같은 :

class Team 
{ 
    public String teamName; 
    public int score; 
    public String category; 
    public int numberOfTurns; 

    public Team(...){...} // the constructor 
} 

그런 다음 원하는 데이터 구조를 사용하십시오 (예 : arraylist).

List<Team> list = new ArrayList<Team>(); 

목록에 요소를 추가하려면 :

list.add(new Team(...)); 

이 목록의 첫 번째 팀의 점수를 증가하려면, 등등

list.get(0).score++; 

와 ...

1

변경

List<Team> teams = new ArrayList<Team>();

teams = new ArrayList<Team>();

에 참조 : 클래스 팀의 객체에 Your declarations is hiding the member variables.

+1

public 대신 private 변수를 사용하는 것도 고려하십시오. – user802421

+0

수락 된 대답은 @ Eng.Fouad에게가는 길의 90 %를 얻으려고하지만 Rep ++ 역시 너에게 그렇다. :) thx! – Horse

관련 문제