检索android parse列并将其设置为array
我在Parse中有一个名为Customer\u Information的表。还有一列名为username。我想检索username列中的所有值并将其存储到数组中。存储之后,我想将其设置为单个textview。这可能吗?我尝试过这段代码,但它有一个错误ArrayIndexOutOfBounds检索android parse列并将其设置为array,android,parsing,textview,Android,Parsing,Textview,我在Parse中有一个名为Customer\u Information的表。还有一列名为username。我想检索username列中的所有值并将其存储到数组中。存储之后,我想将其设置为单个textview。这可能吗?我尝试过这段代码,但它有一个错误ArrayIndexOutOfBounds public class Users extends Activity{ private static final String tbname = "Customer_Information";
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();
}
}
}
}
公共类用户扩展活动{
私有静态最终字符串tbname=“客户信息”;
私有静态最终字符串uname=“username”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.users);
TextView text=(TextView)findViewById(R.id.text);
ParseQuery查询=新的ParseQuery(tbname){
试一试{
List test=query.find();
对于(int x=0;x而言,这一行最有可能出现问题:
text.setText("Username: "+str[x]+"\n");
您正在尝试访问索引,但您正在使用x
访问它。如果所有ParseObject
返回一个长度相同的数组,过一段时间后,随着x
的增加,它将变大,超过该数组的最大索引,从而导致IndexOutOfBoundsException
我建议您首先进行一些测试:打印出str
的值,找出您需要的索引,然后更改行,使其使用常量索引。基于这样一个事实,即自执行此操作以来,数组中只有1个元素
String[] str = {test.get(x).getString(uname)};//one element array
索引很可能是0
:
text.setText("Username: "+str[0]+"\n");
如果您不打算使str
大于1个元素,请放弃它,只使用一个字符串
是的,很抱歉我的错误。但是我如何将uname列的值放入数组?我不知道如何将其放入数组字符串,这就是我尝试字符串[]str={test get(x)的原因.getString(uname)};@kdot您可能应该为此使用一个列表
。只需在循环外部声明它,然后在列表
中使用该字符串内部调用add()
。这实际上取决于您想要做什么。