2014-02-12 4 views
-1

동일한 데이터를 계속 참조해야하는 응용 프로그램을 만들고 있습니다. 나는 코딩을 처음 사용하므로 제대로 수행하고 있는지 알지 못합니다. 지금 나는 원하는 데이터를 저장하는 세터와 getter 클래스를 만들었습니다.ArrayList 저장 항목

public class PlayerList { 
    private String score; 
    private String team; 
    private String name; 
    private String scoreWeek; 
    private String position; 
    private String goals; 
    private String assists; 
    private String yellowCards; 
    private String redCards; 
    private int iconID; 
    public PlayerList(String name, String team, String score, String scoreWeek, String position, 
      String goals, String assists, String yellowCards, String redCards, int iconID){ 
     super(); 
     this.score= score; 
     this.team = team; 
     this.name = name; 
     this.scoreWeek = scoreWeek; 
     this.position= position; 
     this.goals = goals; 
     this.assists = assists; 
     this.yellowCards = yellowCards; 
     this.redCards = redCards; 
     this.iconID= iconID; 
    } 
    public String getScore() { 
     return score; 
    } 
    public void setScore(String score) { 
     this.score = score; 
    } 
    public String getTeam() { 
     return team; 
    } 
    public void setTeam(String team) { 
     this.team = team; 
    } 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public String getScoreWeek() { 
     return scoreWeek; 
    } 
    public void setScoreWeek(String scoreWeek) { 
     this.scoreWeek = scoreWeek; 
    } 
    public String getPosition() { 
     return position; 
    } 
    public void setPosition(String position) { 
     this.position = position; 
    } 
    public String getGoals() { 
     return goals; 
    } 
    public void setGoals(String goals) { 
     this.goals = goals; 
    } 
    public String getAssists() { 
     return assists; 
    } 
    public void setAssists(String assists) { 
     this.assists = assists; 
    } 
    public String getYellowCards() { 
     return yellowCards; 
    } 
    public void setYellowCards(String yellowCards) { 
     this.yellowCards = yellowCards; 
    } 
    public String getRedCards() { 
     return redCards; 
    } 
    public void setRedCards(String redCards) { 
     this.redCards = redCards; 
    } 
    public int getIconID() { 
     return iconID; 
    } 
    public void setIconID(int iconID) { 
     this.iconID = iconID; 
    } 
} 

(Item 클래스) 그런 다음 I이 데이터 편집 및 배열에 투입되는 다른 클래스를 만들었다.

(편집자 코드)

public class Players extends Activity { 
    private ArrayList<PlayerList> stateList = new ArrayList<PlayerList>(); 


    public Players(){ 
     PlayerList _states = new PlayerList("Name","Team","Score","Score Week", "Position", 
       "Goals", "Assists","Yellow Cards","Red Cards", R.drawable.client_icon); 
     stateList.add(_states); 

     PlayerList _states1 = new PlayerList("Name2","Team","Score","Score Week", "Position", 
       "Goals", "Assists","Yellow Cards","Red Cards", R.drawable.client_icon); 
     stateList.add(_states1); 

     PlayerList _states2 = new PlayerList("Name3","Team","Score","Score Week", "Position", 
       "Goals", "Assists","Yellow Cards","Red Cards", R.drawable.client_icon); 
     stateList.add(_states2); 

    } 
} 

데이터를 편집하고 별도의 배열 목록에 추가 한 후, 어떻게 다시 데이터를 참조 할 수 있습니다. 예를 들어 응용 프로그램의 다른 섹션에서 플레이어의 점수를 참조해야합니까? SharedPreferences에 데이터를 저장하려고했지만 집합 만 저장합니다. 도와주세요. 다른 활동으로 보내고 싶습니다. 예를 들어 홈 화면에 플레이어 점수를 표시하고 싶습니다. 한 팀의 선수들에 관해 말하는 스크린 에서뿐만 아니라.

+0

응용 프로그램의 다른 섹션에서 무엇을 의미합니까? 예를 들어, 문제가 다른 활동으로 데이터를 보내고 있습니까? – armandooj

답변

0

데이터를 사용하는 함수에 데이터를 직접 전달하지 않으려면 어딘가에 유지해야합니다. 이를 데이터 지속성이라고합니다. 일반적으로 프로세스가 생성 된 데이터보다 먼저 죽을 것입니다. Java에서이 용어는 이벤트 간 또는 프로세스 호출 간 데이터를 참조하는 데 느슨하게 사용되며 프로세스가 반드시 필요하지는 않습니다. Java에서 일반적으로 지속성은 직렬화를 사용하여 수행됩니다. 당신은 모든이가 직렬화 포함 객체 경우 객체는 직렬화 할 수있는이

public class MyClass implements Serializable { }

같은 클래스 Serializable을 만들 수 있습니다. 객체가 직렬화되면 (자), 스트림에 기입 해, 스트림 (아마 파일에)으로부터 읽어 낼 수가 있습니다. 그런 다음 다른 코드가 직렬화 된 데이터를 검색 할 수 있습니다. ObjectOutputStreamObjectInputStream은 직렬화 가능 데이터를 읽고 쓸 수 있습니다. 객체를 적절한 유형으로 다시 읽으면서 객체를 캐스팅해야합니다.

for (PlayerList pl: myArrayList) { 
    System.out.println(pl.getScore()); 
} 
: 당신의 팀 모두의 점수를 얻을,

int score = null; 
for (PlayerList pl: myArrayList) { 
    if(pl.getName() == teamName) 
     score = pl.getScore(); 
} 
System.out.println(score == null ? "No score available.": score); 

또는 : 나는 당신의 질문을 잘못 읽고 당신이 정말로 당신의 ArrayList에 액세스하는 방법을 알고하지 않은 경우

이 시도

+0

구문 오류가 있습니다 (';'가 없습니다). 또한 '점수'는 비공개이므로 액세스 할 때 getter 메서드를 사용해야합니다. – Sionnach733

+1

@ Sionnach733 이전에 OP가 얻으 려던 점을 놓친 이후로,주의를 기울여 첫 번째 코드를 재구성했습니다. 나는 그가 끈기에 대해 전혀 신경 쓰지 않는다는 것을 95 % 확신하고 Stack이 그의 숙제를하고 싶어한다. – Rainbolt