2013-08-28 3 views
0

Я разрабатываю какое-то приложение для отслеживания баллов для определенной игры. Пользователь добавляет определенное количество игроков (число в настоящее время не ограничено), и эти имена игроков затем добавляются в ArrayList. Затем в следующем действии пользователь должен выбрать игровое имя из Spinner и ввести определенное количество «очков» или, скажем, «счет» для этого игрока.Создайте индивидуальное целое число для каждого элемента ArrayList?

Это мой текущий код для этого:

public void submitScore(View v){ 
    LinearLayout lLayout = (LinearLayout) findViewById (R.id.linearLayout); 
    final int position = playerList.getSelectedItemPosition(); 
    EditText input = (EditText) findViewById(R.id.editText1); 
    final LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    final TextView newTextView = new TextView(this); 
    String enteredText = input.getText().toString(); 

    if (enteredText.matches("")) 
    { 
     emptyTextError(); 
    } 
    else 
    { 
     //NEW TEXTVIEW 
     newTextView.setLayoutParams(lparams); 
     newTextView.setText(players.get(position) + " " + score); 
     newTextView.setTextSize(20); 
     lLayout.addView(newTextView); 
    } 
} 

Как вы можете видеть, пользователь вводит определенный результат и новый TextView создаются содержащим имя игрока и текущий счет.

Теперь, что я хочу сделать, это реализовать функцию, которая будет отслеживать оценку для каждого игрока.

Пример: Пользователь добавил 2 игрока, один по имени Джон и один по имени Джек. Затем пользователь добавил 20 очков к Джону, а затем через некоторое время еще 20, а также к john. Теперь TextViews должен выглядеть следующим образом:

John 20

John 40

а затем, если пользователь добавит 10 очков к Джеку и еще 20 к Джону, TextViews должен выглядеть следующим образом :

John 20

John 40

Jack 10

John 60

Это то, что я не знаю, что делать. Как реализовать новую переменную int для каждого элемента ArrayList? Или есть лучший способ сделать это, чем делать переменные int?

Мне нужно приложение, чтобы автоматически генерировать ints в соответствии с ArrayList, если ArrayList содержит 5 игроков, необходимо создать 5 ints, потому что я не знаю, сколько игроков пользователь будет вводить.

+1

Почему бы не использовать _Map_ или _List_ of _ composition_? – rocketboy

+0

@rocketboy Я никогда не делал ничего подобного, я все еще новичок. Не могли бы вы добавить какое-то объяснение, как это сделать?Спасибо – Guy

ответ

1

Вы должны создать класс, возможно, названный «Player». Каждый игрок будет иметь значение String name и значение int score. Затем вы можете добавлять эти Player экземпляры в массив каждый раз, когда создается новый Player. Посмотрите, как это сделать в Java class toturial

+0

Спасибо, я дам ему попытку и дам вам знать, как это происходит. – Guy

+0

Кроме того, OP должен узнать о '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' javase/tutorial/collections) – chrylis

0
 class PlayerScore{ 

     String userName; 
     int score; 
     public PlayerScore(String userName, int score) { 
        this.userName = userName; 
        this.score = score; 
     } 

     //setter and getter 

     }  

     List<PlayerScore> playerScore=new ArrayList<PlayerScore>(); 
     playerScore.add(new PlayerScore("John",20)); 
     playerScore.add(new PlayerScore("John",40)); 
     playerScore.add(new PlayerScore("Jack",10)); 
     playerScore.add(new PlayerScore("John",60)); 
+0

Это не то, что имел в виду Мэтью. Он добавляет 2x20, что составляет 40. Вы добавляете 40 напрямую. Таким образом, для очков в объекте игрока должно быть какое-то свойство аудита/истории. – aki

0

Попробуйте использовать Map<String,Integer>, для быстрого доступа попробовать HashMap<~>

Map<String, Integer> map = new HashMap<String, Integer>(); 
    map.put("John", 10); 
    map.put("Bob", 40); 

Если вы хотите сортировать по имени использовать TreeMap. Если вы хотите отсортировать по баллам, прочитайте эту старую ветку: Sort a Map<Key, Value> by values (Java)

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