Android / Java:在数组中拆分数据并显示

时间:2011-05-31 18:22:59

标签: java android

我正在尝试做一些非常基本的事情!并且它不会工作:(。我觉得我要进入圈子。

以下是纲要:我希望用户在EditText框中输入一系列数字(以逗号分隔)。选择添加按钮后,split方法会将每个数字分隔为String []中自己的插槽。事实上,如果我可以让这部分工作,数字将从数组中拉出并转换为双精度数。然后它们将用于计算或两次。我尝试了几种不同的方法来实现这一点,似乎问题来自split方法或for-loop。下面列出的代码返回一个空字符串。

另外,通过我的试验和错误,我最终得到了一个返回方法calculate()。在onClick方法中可以填充多少东西?这是个坏主意吗?请尽可能残酷!我是android的新手。提前谢谢。


package com.simplydesign.android.standarddev;

import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import android.view.*;

public class Main extends Activity {
/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final Button addBtn = (Button) findViewById(R.id.addBtn);
    final EditText userData = (EditText) findViewById(R.id.editText1);
    final TextView dataCollection = (TextView) findViewById(R.id.textView1);

    addBtn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            String[] rawData;
            rawData = userData.getText().toString().split(",");
            dataCollection.setText(calculate(rawData));
        }

    });

}

public String calculate(String[] a) {

    String output = "";

    for (int i = 0; i < a.length - 1; i++) {
        output += " " + a[i];
        } return output;
}
}

3 个答案:

答案 0 :(得分:2)

在你的for循环中,你应该从0迭代到a.length - 1。这意味着循环必须如下所示:

for (int i = 0; i < a.length; i++) { /* ... */ }

但你最好使用类似的东西:

public String calculate(String[] a) {

    StringBuilder output = new StringBuilder();

    for (String s : a) {
        output.append(' ').append(s);
    }
    return output.toString();
}

不幸的是,我认为它不会完全解决您的问题,但它肯定会修复一个错误。

答案 1 :(得分:1)

尝试使用get editable Text()而不是geTtext()。

答案 2 :(得分:0)

问题出在你的for循环中。

for (int i = 0; i < a.length - 1; i++) {

......应该......

for (int i = 0; i < a.length; i++) {

我在你所有的测试中猜测,你只是使用逗号分隔的2个数字,我在你的代码中输入3个数字时就发现了问题。