Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否为每个ArrayList元素创建单个整数?_Java_Android_Eclipse_Arraylist - Fatal编程技术网

Java 是否为每个ArrayList元素创建单个整数?

Java 是否为每个ArrayList元素创建单个整数?,java,android,eclipse,arraylist,Java,Android,Eclipse,Arraylist,我正在为某个游戏开发某种“分数跟踪”应用程序。用户添加一定数量的玩家(当前数量不限),然后将这些玩家名称添加到ArrayList中。然后在下一个活动中,用户必须从微调器中选择一个玩家名称,并为该玩家输入一定数量的“点数”或“分数” 这是我的当前代码: public void submitScore(View v){ LinearLayout lLayout = (LinearLayout) findViewById (R.id.linearLayout); final int p

我正在为某个游戏开发某种“分数跟踪”应用程序。用户添加一定数量的玩家(当前数量不限),然后将这些玩家名称添加到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);
    }
}
如您所见,用户输入某个分数,并创建一个新的文本视图,其中包含球员姓名和当前分数

现在我想做的是实现一个功能,跟踪每个球员的得分

示例:用户添加了两个玩家,一个叫约翰,一个叫杰克。然后,用户给John加了20分,过了一会儿,又给John加了20分。现在,文本视图应该如下所示:

约翰20

约翰40

然后,如果用户给Jack加10分,给John加20分,TextView应该如下所示:

约翰20

约翰40

杰克10

约翰60

这就是我不知道该怎么做的。如何为每个ArrayList元素实现一个新的int变量?或者有没有比生成int变量更好的方法


我需要应用程序根据ArrayList自动生成整数,如果ArrayList包含5个玩家,则需要创建5个整数,因为我不知道用户将输入多少玩家。

您应该创建一个类,可能称为“玩家”。每个玩家都有一个字符串值
name
和一个int值
score
。然后,您可以在每次创建新播放器时将这些
Player
实例添加到数组中。请参见如何在PlayerScore类中执行此操作{ 字符串用户名; 智力得分; 公共PlayerScore(字符串用户名、整数分数){ this.userName=用户名; 这个分数=分数; } //接二连三 } List playerScore=new ArrayList(); 添加(新的playerScore(“John”,20)); 添加(新的playerScore(“John”,40)); 添加(新的playerScore(“Jack”,10)); 添加(新的playerScore(“John”,60)); 尝试使用
映射
,为了更快地访问,请尝试
哈希映射

Map Map=newhashmap();
地图放置(“约翰”,10);
地图放置(“鲍勃”,40);
如果要按名称排序,请使用树形图。如果要按分数排序,请阅读此旧线程:

为什么不使用地图或作文列表呢?@rocketboy我从来没有做过这样的事情,我还是个初学者。你能解释一下怎么做吗?谢谢谢谢你,我会尝试一下,让你知道它是如何运行的。所以,OP应该了解
Map
s和其他收藏,这不是Matthew的意思。他加了2x20,也就是40。你直接加40。因此,玩家对象中的分数需要有一些审计/历史属性。
     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)); 
    Map<String, Integer> map = new HashMap<String, Integer>();
    map.put("John", 10);
    map.put("Bob", 40);