ParseQueryAdapter显示空白列表



所以我遵循了本教程创建自定义ParseQueryAdapter,但由于某些原因,我的列表视图没有被填充。

Listview活动

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_listusers);
    //Initialize the subclass of PQM
    listViewAdapter = new ListViewAdapter(this);
    //Initialize ListView and set view to listadapter
    usersListView = (ListView) findViewById(R.id.usersListView);
    usersListView.setAdapter(listViewAdapter);

ListViewAdapter

public class ListViewAdapter extends ParseQueryAdapter<ParseObject> {
public ListViewAdapter(Context context){
    //Use Query factory to constuct a PQA that will not include the current user
    super(context, new ParseQueryAdapter.QueryFactory<ParseObject>(){
       public ParseQuery create(){
           String currentUserId = ParseUser.getCurrentUser().getObjectId();
           ParseQuery query = new ParseQuery("User");
           query.whereNotEqualTo("objectId", currentUserId);
           return query;
       }
    });
}
//Customise the layout by overriding getItemView
@Override
public View getItemView(ParseObject object, View v, ViewGroup parent){
    if (v == null){
        v = View.inflate(getContext(), R.layout.user_list_items, null);
    }
    super.getItemView(object, v, parent);
    //Add the username textview
    TextView userListItem = (TextView) v.findViewById(R.id.text1);
    userListItem.setText(object.getString("username"));
    //Add the status textview
    TextView userListSubItem = (TextView) v.findViewById(R.id.userListSubItem);
    userListSubItem.setText(object.get("status").toString());
    return v;
}
}

activity_listusers XML文件

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/logout"
        android:id="@+id/logoutButton"
        android:gravity="center_vertical|center_horizontal"
        android:layout_gravity="center_horizontal"
        android:background="@color/dark_gray"
        android:textSize="24sp"
        android:padding="15dp"
        android:textColor="@color/heartbeat_red" />
    <ListView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="16dp"
        tools:context="com.sinch.messagingtutorialskeleton.ListUsersActivity"
        android:background="#ffffff"
        android:id="@+id/usersListView"
        >
    </ListView>
</LinearLayout>

User_List_Items XML文件

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:id="@+id/text1"
        android:textColor="#a9a9a9"
        android:padding="16dp"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:textSize="20sp">
    </TextView>
    <TextView
        android:id="@+id/userListSubItem"
        android:textColor="#a9a9a9"
        android:padding="16dp"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/text1"
        android:textSize="16sp">
    </TextView>
</LinearLayout>

我对Android相对陌生,对Parse也很陌生,我看不出哪里出了问题,Parse工作得很好,因为我之前有一个使用Parse登录的活动。

非常感谢,

编辑:所以我刚刚在Parse.com中创建了一个新的类,并查询了它,而不是用户和有效的,不确定你是否不能在user类上使用ParseQueryAdapter,或者我试图查询它的方式是否错误?

多亏了@cYrixmorten,在构造普通解析查询时,必须将用户类引用为_user。

从更改线路

ParseQuery query = new ParseQuery("User");

ParseQuery query = new ParseQuery("_User");

最新更新