我希望根据一些查询从 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();
}
}
});
当我尝试在“数据”处初始化适配器时出现错误,提示数据无法解析为变量,而我已经创建了它。我该如何解决? 谢谢
最佳答案
你做错了什么是,每次进入循环时都初始化数组,即
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);
关于Android 无法使用 for 循环从 Parse.com 数据库获取用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24603025/