如何从一个EditText中获取多个变量?

时间:2013-06-10 20:48:33

标签: java android android-edittext

我正在寻找一种从一个EditText获取三个浮点值的方法。我看过开发者页面,但我找不到最符合我需要的东西。我想得到三个浮点数ax,y,z从EditText的一个条目?

非常感谢大家对这个问题的答复我非常感谢。 我现在只限于计算机上的时间,但生病了,让你知道哪个答案对我有效,并且我的代码也发布了。

4 个答案:

答案 0 :(得分:0)

如果它们被空格分开

Scanner sc = new Scanner(yourEditText.getText().toString());

float vals = new float[3];

while(int i=0; sc.hasNextFloat() && (i < 3); ++i) {
   vals[i] = sc.nextFloat();
}

否则使用Scanner.setDelimiter设置除空格之外的分隔符。

重新考虑您的设计,改为使用三个EditTexts。在手机上输入逗号等符号会很痛苦

答案 1 :(得分:0)

String value = yourEditText.getText().toString();
String[] floatStrings = value.split(",");
float[] result = new float[floatString.length];
for (int i=0; i<result.length; i++) {
    result[i] = Float.valueOf(floatStrings[i];
}

答案 2 :(得分:0)

如果您希望用户输入3个单独的值,则使用3个EditText小部件,这些值将被解析为3个单独的变量。

答案 3 :(得分:-1)

您应该创建多个EditText视图,或者然后解析EditText的内容

EditText textView;

String[] splitFloatStrings = textView.getText().toString();.split(",");
float[] parsedFloats = new float[splitFloatStrings.length];

for (int i=0; i < parsedFloats.length; i++) {
    parsedFloats[i] = Float.valueOf(splitFloatStrings[i];
}

根据Java parsing a string of floats to a float array?