ParseUser Username Adapter in Android ListView doesn't show Data

拜拜、爱过 提交于 2019-12-12 03:16:57

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!