Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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 从各种EditText字段获取文本_Java_Android_Arrays_Android Edittext - Fatal编程技术网

Java 从各种EditText字段获取文本

Java 从各种EditText字段获取文本,java,android,arrays,android-edittext,Java,Android,Arrays,Android Edittext,在我的Android应用程序中,我在Android Studio中使用Java,我想使用一个循环从我的EditText字段中获取插入的文本 你能帮帮我吗 for (int i=0; i==player; i++ ){ myArray[i] = "player"+i.getText().toString(); } 我有EditTextfields,在player15之前可以声明为player0。 Player是我的EditTextfields总数 我想将所有输入写入一个数组,但我总是得

在我的Android应用程序中,我在Android Studio中使用Java,我想使用一个循环从我的EditText字段中获取插入的文本

你能帮帮我吗

for (int i=0; i==player; i++ ){
     myArray[i] = "player"+i.getText().toString();
}
我有EditTextfields,在player15之前可以声明为player0。 Player是我的EditTextfields总数


我想将所有输入写入一个数组,但我总是得到一个错误,原因是
“player”+I
“有其他解决方案如何处理这个问题吗?

简单地说,Java不能以这种方式工作。不能从字符串生成变量名。 获取所需内容的最简单方法是数组

EditText[] players = {
    player0, player1, player2, player3, player4, 
    player5, player6, player7, player8, player9, 
    player10, player11, player12, player13, player14, player15
};
List<String> texts = new ArrayList<>(players.length);
for (EditText player : players) {
    texts.add(players[i].getText().toString());
}
EditText[]玩家={
player0,player1,player2,player3,player4,
player5,player6,player7,player8,player9,
player10,player11,player12,player13,player14,player15
};
列表文本=新数组列表(players.length);
用于(编辑文本播放器:播放器){
text.add(players[i].getText().toString());
}

如果所有编辑文本字段都在同一布局中(线性布局…) 通过将每个EditText作为布局的子对象进行访问,可以使用循环简单地访问它们 假设在xml文件中有一个线性布局

<LinearLayout
 android:id="@+id/linearLayout" 
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical" >
<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>
<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>
</LinearLayout>

请注意,我们给了布局一个id(linearLayout) 现在,从java代码中,您可以使用以下循环简单地填充数组

    LinearLayout linear= (LinearLayout)findViewById(R.id.linearLayout);
    for(int i=0;i<linear.getChildCount();i++)
    {
      EditText field=linear.getChildAt(i);
      array[i]=field.getText().toString();
    }
LinearLayout linear=(LinearLayout)findViewById(R.id.LinearLayout);

for(int i=0;i
i
是一个
int
,不会有
getText()
方法。还要检查
i==player
是否是您在循环中想要的。-1相反,您应该使用视图,而不是分离视图和与它们相关的文本。这样更容易处理。@JoxTraex是的,除非用户填写完表单,并且您希望收集输入并提交它们。毕竟,您需要在某一点上,我们需要将文本从视图中删除。