好的,所以我在Android中第一次使用ParseQuery
并且不确定如何完成。我想出了如何列出某些坐标内的所有Names
。现在我想要的是通过单击列表中的一个名称来访问我想要的任何用户。有谁知道这是怎么做的?这是获取Names
的代码。
location.clear();
ParseUser user = ParseUser.getCurrentUser();
ParseGeoPoint myLoc = user.getParseGeoPoint("lat_long");
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereNear("lat_long", myLoc);
query.setLimit(10);
query.whereNotEqualTo("username", ParseUser.getCurrentUser().getUsername());
query.findInBackground(new FindCallback<ParseUser>() {
@Override
public void done(List<ParseUser> objects, ParseException e) {
if (e != null) {
Toast.makeText(SearchActivity.this, "Error ", Toast.LENGTH_SHORT).show();
}
for (ParseUser user : objects) {
String newLoc = user.getString("fullname");
location.add(newLoc);
}
if (e == null) {
Log.d("Test", "Got results: " + objects.size());
for (ParseUser it : objects)
Log.d("Test", "User found: " + it.getUsername());
} else {
Log.d("Test", "User not found: " + e.getMessage());
}
ArrayAdapter<String> adapter = new ArrayAdapter<>(SearchActivity.this, android.R.layout.simple_list_item_1, location);
setListAdapter(adapter);
}
}
我猜不好可能需要让每个用户objectId获取文件和其他数据。但我如何管理点击?
答案 0 :(得分:1)
您可以将onclicklistener附加到listview项目。如果您使用的是listview,请尝试使用parsequeryadapter而不是arrayadapter(它会为您处理大部分内容)。看一下this文章
一旦我们创建了我们的列表并使用我们想要与用户交互的项目填充它,就可以点击一个项目或者显示上下文菜单。要做到这一点,我们必须注册一些听众。
如果我们想在用户点击某个项目时收听,我们就必须这样做 实现AdapterView.OnItemClickListener()。所以我们有:
// React to user clicks on item
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parentAdapter, View view, int
position,
long id) {
// We know the View is a TextView so we can cast it
TextView clickedView = (TextView) view;
Toast.makeText(MainActivity.this, "Item with id ["+id+"] - Position ["+position+"] - Planet ["+clickedView.getText()+"]", Toast.LENGTH_SHORT).show();
}
});