0

我在 Parse 中有一个名为 Customer_Information 的表。并且有一个名为用户名的列。我想检索用户名列中的所有值并将其存储到数组中。存储后,我想将其设置为单个文本视图。这可能吗?我试过这段代码,但它有一个错误 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();

    }
}
}
}
4

1 回答 1

0

问题很可能与这条线有关:

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

您正在尝试访问索引,但您正在使用x. 如果所有s 返回一个相同长度ParseObject的数组,一段时间后,随着增加,它将变得大于该数组的最大索引,从而产生一个.xIndexOutOfBoundsException

我建议你先做一些测试:打印出 的值str,找出你需要的索引,然后更改该行,使其使用常量索引。基于您在数组中只有 1 个元素的事实,因为您这样做了

String[] str = {test.get(x).getString(uname)};//one element array

该指数最有可能0

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

如果您不打算制作str任何大于 1 的元素,请将其丢弃并仅使用单个String.

于 2013-03-13T17:02:14.090 回答