【问题标题】:Retrieve android parse column and set it to array检索 android 解析列并将其设置为数组
【发布时间】:2013-03-13 16:59:11
【问题描述】:

我在 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();

    }
}
}
}

【问题讨论】:

    标签: android parsing textview


    【解决方案1】:

    问题很可能出在这一行:

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

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

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

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

    索引最有可能是0

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

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

    【讨论】:

    • 是的,你是对的,对不起我的错误。但是如何将 uname 列的值放入数组中?我不知道如何将它放入数组字符串中,这就是为什么我尝试使用 String[] str = {test.get(x).getString(uname)};
    • @kdot 您可能应该为此使用List。只需在循环外声明它,然后在 List 上使用字符串调用 add()。这真的取决于你到底想做什么。
    猜你喜欢
    • 1970-01-01
    • 2015-01-09
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 2012-10-11
    • 2018-01-14
    相关资源
    最近更新 更多