问题
im trying to show the usernames of all the people in my Parse.com User.class in an Android ListView, but it won't show any Data if I execute it.
It runs on my Samsung Galaxy S2 with Android 4.1.2
The Code:
// Create and populate an ArrayList of objects from parse
final ArrayAdapter<String> listAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1);
final ListView userlist = (ListView) findViewById(android.R.id.list);
userlist.setAdapter(listAdapter);
final ParseQuery query = ParseUser.getQuery();
query.findInBackground(new FindCallback() {
@Override
public void done(List userlist, ParseException e) {
if (e == null) {
for (int i = 0; i < userlist.size(); i++) {
ParseUser u = (ParseUser) userlist.get(i);
String name = u.getString("username");
listAdapter.add(name);
}
}
else {
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_LONG).show();
}
}
@Override
public void done(Object o, Throwable throwable) {
}
});
The XML:
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
xmlns:android="http://schemas.android.com/apk/res/android">
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
And it only shows a white screen and no usernames...
(Do you need the logcat?)
Appreciate help!! `
回答1:
set adapter after cycle
if (e == null) {
for (int i = 0; i < userlist.size(); i++) {
ParseUser u = (ParseUser) userlist.get(i);
String name = u.getString("username");
listAdapter.add(name);
}
userlist.setAdapter(listAdapter);
回答2:
ParseQueryAdapter.QueryFactory<ParseUser> factory;
factory = new ParseQueryAdapter.QueryFactory<ParseUser>() {
@Override
public ParseQuery<ParseUser> create() {
ParseQuery query = new ParseQuery("User");
return query;
}
};
mainAdapter = new ParseQueryAdapter<ParseUser>(this, factory) {
@Override
public View getItemView(final ParseObject user, View v, ViewGroup parent) {
if (v == null) {
v = View.inflate(getContext(), R.layout.your_list_view, null);
}
return v;
}};
mainAdapter.setPaginationEnabled(true);
mainAdapter.setTextKey("title");
mainAdapter.setImageKey("Image");
mainAdapter.loadObjects();
see if this works
来源:https://stackoverflow.com/questions/32475596/parseuser-username-adapter-in-android-listview-doesnt-show-data