我希望基于一些查询从parse.com数据库中获取一些用户的名字,我正在使用for循环来获取用户并使用自定义适配器和代码将其加载到listview中我用过的是:
query.findInBackground(new FindCallback<ParseUser>() {
@Override
public void done(List<ParseUser> pusers, ParseException e) {
// TODO Auto-generated method stub
if (e==null) {
for (ParseUser pu : pusers) {
Users1[] data = new Users1[] {
new Users1(pu.getString("Name"), true)
};
}
UserListAdapter mUserAdapter = new UserListAdapter(getBaseContext(), R.layout.user_list_item, data);
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(ManualInviteActivity.this);
builder.setMessage(R.string.login_error_message);
builder.setTitle(R.string.login_error_title);
builder.setPositiveButton(android.R.string.ok, null);
AlertDialog dialog = builder.create();
dialog.show();
}
}
});
当我尝试在数据&#39;数据处初始化适配器时出现错误当我已经创建数据时,它表示数据无法解析为变量。我该如何解决? 感谢
答案 0 :(得分:2)
你做错了什么,每次进入循环时都要初始化数组,即
for(ParseUser pu : pusers)
{
Users1[] data = new Users1[]
{
new Users1(pu.getString("Name"), true) // here every time new instance is created.
}
}
所以不是这样,而是在for循环之外初始化它 -
Users1[] data = new Users1 [pusers.size()];
然后开始你的for循环
int i = 0;
for(ParseUser pu : pusers)
{
Users1 user=new Users1(pu.getString("Name"), true);
data[i]= user;
i++;
}
UserListAdapter mUserAdapter = new UserListAdapter(getBaseContext(), R.layout.user_list_item, data);
答案 1 :(得分:1)
而不是代码:
if(e==null)
{
for(ParseUser pu : pusers)
{
Users1[] data = new Users1[]
{
new Users1(pu.getString("Name"), true)
};
}
UserListAdapter mUserAdapter = new UserListAdapter(getBaseContext(), R.layout.user_list_item, data);
}
使用此更正后的代码:
if(e==null)
{
Users1[] data = null;
int i=0;
for(ParseUser pu : pusers)
{
if(data==null){
data = new Users1[pusers.size()];
}
Users1 user=new Users1(pu.getString("Name"), true);
data[i]= user;
i++;
}
UserListAdapter mUserAdapter = new UserListAdapter(getBaseContext(), R.layout.user_list_item, data);
}