2014-02-12 5 views
-1

Я создаю приложение, в котором я должен снова и снова ссылаться на одни и те же данные. Я новичок в кодировании, поэтому не знаю, правильно ли я делаю это. Сейчас я создал класс с сеттерами и геттерами для хранения данных, которые я хочу.Сохранение ArrayList Item

(Деталь Класс)

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; 
    } 
} 

Тогда я сделал еще один класс, в котором эти данные отредактирован и поместить в массив.

(Редактор кода)

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 персистентность обычно выполняется с помощью сериализации. Вы можете сделать свой класс Serializable как этот

public class MyClass implements Serializable { }

Объект может быть сделано только для сериализации, если каждый объект содержит сериализуем. Как только объект сериализуется, его можно записать и прочитать из потока (возможно, в файл). Другой код может затем получить сериализованные данные. ObjectOutputStream и ObjectInputStream способны считывать и записывать сериализуемые данные. Вам нужно будет отбросить объекты, когда вы их вернете обратно к соответствующему типу.

Если я читаю ваш вопрос неправильно, и вы на самом деле просто не знал, как получить доступ к ArrayList, попробуйте следующее:

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

Или, чтобы получить оценку всех ваших команд:

for (PlayerList pl: myArrayList) { 
    System.out.println(pl.getScore()); 
} 
+0

У вас есть синтаксические ошибки (отсутствует ';'). Также 'score' является закрытым, поэтому вам нужно использовать метод getter для доступа к нему. – Sionnach733

+1

@ Sionnach733 Я восстановил первый бит кода после того, как вы привлекли мое внимание к нему, так как ранее я пропустил то, что пытался выполнить OP. Я на 95% уверен, что он вообще не заботится о настойчивости, и просто хочет, чтобы Стек делал домашнее задание. – Rainbolt

Смежные вопросы