使用ParseQuery检索数据

时间:2014-08-07 01:00:46

标签: java android android-layout android-activity parse-platform

我正在尝试将用户已经记录在我的parse.com数据库中的信息检索到应用程序中。我已经研究过,并且已经获得了帮助,但仍然遇到了实现这一目标的问题。特别是,没有显示任何信息。

此外,我还建立了一些条件,例如将限制设置为5人,以及无法检索当前用户信息的位置。

以下是代码

public class MatchingActivity extends Activity {


protected ParseUser mCurrentUser;   
protected List<ParseUser> mUsers;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    setContentView(R.layout.matching);
    // Instantiate a QueryFactory to define the ParseQuery to be used for fetching items in this
     // Adapter.
     ParseQueryAdapter.QueryFactory<ParseObject> factory =
         new ParseQueryAdapter.QueryFactory<ParseObject>() {
           public ParseQuery create() {
             ParseQuery<ParseUser> query = new ParseQuery<ParseUser>("User");
            query.setLimit(5);
             query.orderByDescending("name");
             return query;
           }
         };

     // Pass the factory into the ParseQueryAdapter's constructor.
     ParseQueryAdapter<ParseObject> adapter = new ParseQueryAdapter<ParseObject>(this, factory);
     adapter.setTextKey("name");

     // callback to be fired upon successful loading of a new set of ParseObjects.
     adapter.addOnQueryLoadListener(new OnQueryLoadListener<ParseObject>() {
         @Override 
         public void onLoading() {
         // Trigger any "loading" UI
       }



    @Override
    public void onLoaded(List<ParseObject> objects, Exception e) {
        // TODO Auto-generated method stub

    }
     });

     // Layout reference
     ListView listView = (ListView) findViewById(R.id.listViewSingleClick);
     listView.setAdapter(adapter);


}
    }

XML布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/listViewSingleClick"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

更新 在parsequery和xml listview之间建立关系

public class MatchingActivity extends Activity {


    protected ParseUser mCurrentUser;   
    protected List<ParseUser> mUsers;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
          Parse.initialize(this, "SBNldSjuNL1F7IOj0OWpwenBWRF7rSkjkm8WFQJj", "DLvq1OqSo87kzEw5j1XNBPKJdXF7dxwRtfEPkxWJ");

        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
        setContentView(R.layout.matching);
        // Instantiate a QueryFactory to define the ParseQuery to be used for fetching items in this
         // Adapter.
        ParseQuery<ParseUser> query = new ParseQuery<ParseUser>("User");
        query.setLimit(5);
        query.orderByDescending("name");
        query.findInBackground(new FindCallback<ParseUser>() {
          public void done(List<ParseUser> objects, ParseException e) {
            if (e == null) {
                // The query was successful.
            } else {
                // Something went wrong.
            }
          }
        });


    }
        }   

如果您需要任何澄清,请提出建议。 任何帮助将不胜感激。 提前致谢

1 个答案:

答案 0 :(得分:0)

要查询用户,您需要使用ParseUser.getQuery()方法。

https://www.parse.com/docs/android_guide#users-querying