0

したがって、このチュートリアルに従ってカスタム 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);

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 で新しいクラスを作成し、ユーザーの代わりにそれをクエリしましたが、ユーザー クラスで ParseQueryAdapter を使用できないかどうか、またはクエリしようとしている方法が間違っているかどうかはわかりませんか?

4

1 に答える 1

0

@cYrixmorten のおかげで、通常の解析クエリを作成するときに、ユーザー クラスを _User として参照する必要があります。

行が変更されました

ParseQuery query = new ParseQuery("User");

ParseQuery query = new ParseQuery("_User");
于 2015-04-05T23:11:11.677 に答える