我正在构建应用程序的朋友请求视图。我试图显示朋友请求列表,您可以通过点击它们来接受。
这是我在活动的onCreate()
方法中运行的代码。如您所见,我需要为当前用户的每个朋友请求对象提供一个ListView项,我将其构建到QueryAdapter
中。我想将每个ListView好友请求项的图像和文本设置为发送好友请求的用户的profileImageMedium
和username
字段。每个好友请求对象都指向发送请求的fromUser
。
问题是setTextKey()
和setImageKey()
方法不适用于这些键,因为它们是朋友请求指向的对象的键。将文本和图像键设置为这些字段的最佳方法是什么
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_friend_request);
// Instantiate ParseQueryAdapter
final ParseQueryAdapter<ParseObject> friendRequestListAdapter =
new ParseQueryAdapter<ParseObject>(this, new ParseQueryAdapter.QueryFactory<ParseObject>() {
public ParseQuery<ParseObject> create() {
// Here we can configure a ParseQuery to our heart's desire.
ParseQuery<ParseObject> friendRequestQuery = new ParseQuery("FriendRequests");
friendRequestQuery.whereEqualTo("toUser", ParseUser.getCurrentUser());
friendRequestQuery.include("fromUser");
return friendRequestQuery;
}
});
// Set as adapter for our listview
ListView friendRequestListView = (ListView) findViewById(R.id.friendRequestListView);
friendRequestListView.setOnItemClickListener(friendRequestClickedHandler);
}
答案 0 :(得分:1)
我认为您的解决方案是创建 ParseQueryAdapter 的子类并覆盖getItemView()
方法。就像这样:
class QueryAdapter extends ParseQueryAdapter {
public QueryAdapter(Context context, ParseQueryAdapter.QueryFactory<T> queryFactory) {
super(context, queryFactory, 0);
}
@Override
public getItemView(ParseObject object, View v, ViewGroup parent) {
if (null == v) {
v = View.inflate(getContext(), R.layout.your_layout, null);
}
TextView name = (TextView) v.findViewById(R.id.text_view_id);
ImageView image = (ImageView) v.findViewById(R.id.image_view_id);
ParseUser fromUser = object.getParseUser("fromUser");
name.setText(fromUser.getString("username");
!-- Load your image here
}
}
我不知道你是如何加载图片的,但是你有一个想法 - 如果你的 profileImageMedium 是URL然后使用一些图像加载库,如Picasso,或者如果它是ParseFile更改ImageView在你的单元格中ParseImageView并调用
image.setParseFile(file);
image.loadInBackground();
然后在您的Activity中将ParseQueryAdapter更改为QueryAdapter,并且不要忘记将QueryAdapter设置为ListView
friendRequestListView.setAdapter(QueryAdapter);