检索android解析列并将其设置为数组

时间:2013-03-13 16:59:12

标签: android parsing textview

我在Parse中有一个名为Customer_Information的表。并且有一个名为username的列。我想检索用户名列中的所有值并将其存储到数组中。存储后,我想将其设置为单个textview。这可能吗?我尝试过这段代码,但它有一个错误ArrayIndexOutOfBounds。

public class Users extends Activity{

    private static final String tbname = "Customer_Information";
    private static final String uname = "username";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.users);

    TextView text = (TextView)findViewById(R.id.text);

    ParseQuery query = new ParseQuery(tbname);{

    try{
            List<ParseObject> test = query.find();
            for(int x=0;x<test.size();x++){
            String[] str = {test.get(x).getString(uname)};
            text.setText("Username: "+str[x]+"\n");
            }
    }
    catch (com.parse.ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();

    }
}
}
}

1 个答案:

答案 0 :(得分:0)

问题最有可能是这一行:

text.setText("Username: "+str[x]+"\n");

您正在尝试访问索引,但您正在使用x访问它。如果所有ParseObject都返回相同长度的数组,一段时间后,当x增加时,它将变得大于该数组的最大索引,从而导致{ {1}}。

我建议你先做一些测试:打印出IndexOutOfBoundsException的值,找出你需要的索引,然后更改该行,使其使用常量索引。基于这样一个事实,即你在

中只有1个元素
str

索引很可能是String[] str = {test.get(x).getString(uname)};//one element array

0

如果您不打算text.setText("Username: "+str[0]+"\n"); 任何大于1的元素,请丢弃它并仅使用一个str