【问题标题】:ParseQueryAdapter displaying blank listParseQueryAdapter 显示空白列表
【发布时间】:2015-04-05 22:44:50
【问题描述】:

所以我按照 this 教程创建自定义 ParseQueryAdapter 但由于某种原因我的列表视图没有被填充。

列表视图活动

 @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);

列表视图适配器

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 或者我尝试查询它的方式错了吗?

【问题讨论】:

  • 对我来说看起来是正确的。没有 logcat 消息/错误?
  • 也许 ParseQuery("User") 应该是 ParseQuery("_User")
  • @cYrixmorten 是的,就是这样!我没有意识到在使用 ParseObject 时必须将 User 类称为 _User,我之前只使用过 ParseUser,但不确定它是否适用于使用 ParseObject 的 ParseQueryAdapter 的所有教程。谢谢
  • 很高兴它起作用了 :) 没问题

标签: android android-listview parse-platform android-parsequeryadapter


【解决方案1】:

感谢@cYrixmorten,您必须在构造普通解析查询时将用户类称为_User。

行从

ParseQuery query = new ParseQuery("User");

ParseQuery query = new ParseQuery("_User");

【讨论】:

    猜你喜欢
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 2013-12-10
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多