如何在edittext中获取文本到数组

时间:2013-02-05 17:03:46

标签: android

如何获取EditText的值,然后将其存储在我的数组中?

这是我的完整代码:

EditText op = (EditText)v.findViewById(R.id.operator);
array=new int [Integer.valueOf(op.getText().toString())];

for (i = 0;i<(array.length+1);i++){
    LayoutInflater inflater = MainActivity.this.getLayoutInflater();
    final View v2=inflater.inflate(R.layout.inputangka, null) ;
    new AlertDialog.Builder(MainActivity.this)
        .setIcon(R.drawable.ic_launcher)
        .setTitle("number of-"+(i-1)+":")
        .setView(v2)
        .setNeutralButton("Ok", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dlg, int sumthin) {
                EditText number = (EditText)v2.findViewById(R.id.number);
                int number1 = Integer.valueOf(number.getText().toString());
                array [i]= number1; //error line

我的错误日志:

02-05 16:33:31.374: E/AndroidRuntime(431): java.lang.ArrayIndexOutOfBoundsException

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:1)

这是因为你在编辑文本中输入5。现在,您将循环迭代,直到从初始值0开始小于6。

当计数器达到5时,您的状况将变为真实5&lt; 6然后在这里数组大小是5你正在访问第6个元素。所以它抛出了ArrayIindexOutOfBound Exception

摆脱这个问题。

试试这个。

for (i = 0; i<(array.length);i++){
    //Code
}

答案 1 :(得分:0)

for (i = 0;i<(array.length+1);i++){删除+1,它会像魅力一样工作。

答案 2 :(得分:0)

您只需要通过以下代码替换for条件。

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

它肯定会起作用。

答案 3 :(得分:0)

请参阅,循环执行完毕后,onClick()正在执行,因此i的值比数组的最后一个索引多一个。要解决此问题,请将该值保存到另一个临时整数变量中,然后发送它。那肯定会有用。