【发布时间】:2016-01-14 17:46:51
【问题描述】:
我正在尝试从包含 ParseUser 的列表中创建一个列表视图。 我的搜索类返回:列表 Parse SDK 1.12 不再支持 ParseQueryAdapter 并且配置文件适配器功能不使用 ParseUser。
我尝试从 _User 解析类中查询 ParseObjects,但它不会返回对象。
所以我在 circels 工作,如果我尝试在 ParseObject 中获取用户信息,我不会得到它。如果我与 ParseUser 一起工作,我无法制作 ListView。有人知道绕过它的方法吗?
我已经检查了这些问题。
ParseUser Username Adapter in Android ListView doesn't show Data
和
How to fetch the list of users from ParseUser table and show the it in list view in andorid
但它不适用于指定的用户列表。
这是我的代码。
Java:
public class MainActivity extends ActionBarActivity {
Search search;
EditText mCityField;
List<ParseUser> mAccountList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ParseAnalytics.trackAppOpenedInBackground(getIntent());
mCityField = (EditText)findViewById(R.id.mCityField);
}
public void searchCity(View v){
if(mCityField.getText().toString().length()!=0){
mAccountList = search.searchUsers(mCityField.getText().toString());
Log.i("main", "succesfully searched yo mamma");
} else{
Toast.makeText(MainActivity.this, "You did not enter a city!", Toast.LENGTH_SHORT).show();
}
}
这是我的搜索类:
public class Search {
List<ParseUser> locals = null;
public List<ParseUser> searchUsers(String city){
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("City", city);
query.findInBackground(new FindCallback<ParseUser>() {
public void done(List<ParseUser> userList, ParseException e) {
if (e == null) {
Log.i("main", "inside if loop" + userList);
for (ParseUser user : userList) {
Log.i("main", "inside for loop");
String username = user.getString("username");
Log.i("main", "username " + username);
}
locals = userList;
} else {
Log.d("score", "Error: " + e.getMessage());
}
}
});
return locals;
}
}
适配器类:
public class ProfileAdapter extends ParseQueryAdapter<ParseObject> {
public ProfileAdapter(Context context, QueryFactory<ParseObject> queryFactory) {
super(context, queryFactory);
}
@Override
public View getItemView(final ParseUser user, View v, ViewGroup parent) {
// build your views
}
}
【问题讨论】:
-
你真的需要一个完整的类来使用
searchUsers方法吗?你不能在 Activity 中包含那个方法吗? -
不需要,但我想将查询与我的主要活动分开。
-
当然,当然...您的代码中的
ListView在哪里?我不知道,或者您在哪里初始化适配器。此外,query.findInBackground异步运行,因此return locals在评估时很可能是null。 -
你真的应该遵循这个例子。 parse.com/tutorials/parse-query-adapter
-
但是不再可能将 ParseQueryAdapter 扩展为子类。是否有另一种方法或另一个子类给出相同的结果?
标签: android parse-platform android-listview