|
@@ -0,0 +1,170 @@
|
|
|
+package com.sheishuo.app.main.adapter;
|
|
|
+
|
|
|
+import android.support.v7.widget.CardView;
|
|
|
+import android.support.v7.widget.RecyclerView;
|
|
|
+import android.util.Log;
|
|
|
+import android.view.LayoutInflater;
|
|
|
+import android.view.View;
|
|
|
+import android.view.ViewGroup;
|
|
|
+import android.widget.ImageView;
|
|
|
+import android.widget.TextView;
|
|
|
+
|
|
|
+import com.netease.nimlib.sdk.NIMClient;
|
|
|
+import com.netease.nimlib.sdk.RequestCallback;
|
|
|
+import com.netease.nimlib.sdk.uinfo.UserService;
|
|
|
+import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
|
|
|
+import com.sheishuo.app.R;
|
|
|
+import com.sheishuo.app.common.beans.CircleBean;
|
|
|
+import com.sheishuo.app.common.beans.NearbyGroupsBean;
|
|
|
+import com.sheishuo.app.common.views.GridViewAdapter;
|
|
|
+import com.sheishuo.app.common.views.ImgGridView;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import static com.sheishuo.app.R.id.layout_scr_bottom;
|
|
|
+import static com.sheishuo.app.R.id.visit_num_tv;
|
|
|
+
|
|
|
+/**
|
|
|
+ * Created by KN on 2017/7/20.
|
|
|
+ */
|
|
|
+
|
|
|
+public class CircleListAdapter extends RecyclerView.Adapter<CircleListAdapter.CircleListViewHolder> implements View.OnClickListener{
|
|
|
+
|
|
|
+ private List<CircleBean.DBean.ListBean> data;
|
|
|
+ private OnItemClickListener listener;
|
|
|
+
|
|
|
+ public CircleListAdapter(CircleBean bean){
|
|
|
+ data = new ArrayList<>();
|
|
|
+ data.addAll(bean.getD().getList());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CircleListViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
|
|
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.circle_item,null);
|
|
|
+ return new CircleListViewHolder(view);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onBindViewHolder(final CircleListViewHolder holder, int position) {
|
|
|
+ final CircleBean.DBean.ListBean bean = data.get(position);
|
|
|
+ holder.layout.setTag(bean);
|
|
|
+ holder.layout.setOnClickListener(this);
|
|
|
+ holder.contentTV.setText(bean.getMsg());
|
|
|
+ holder.locationTV.setText(bean.getLocal());
|
|
|
+ holder.dateTV.setText(bean.getInputtime());
|
|
|
+ holder.likesNumTV.setText(bean.getLikes());
|
|
|
+ holder.visitNumTv.setText(bean.getViews());
|
|
|
+
|
|
|
+
|
|
|
+ //获取此朋友圈中的所有用户id
|
|
|
+ List<String> userList = new ArrayList<>();
|
|
|
+ //添加此朋友圈发布者id
|
|
|
+ userList.add(bean.getUser_id());
|
|
|
+ //添加此朋友圈喜欢用户的id
|
|
|
+ for (String likedUser : bean.getLike_users()){
|
|
|
+ if (!userList.contains(likedUser))
|
|
|
+ userList.add(likedUser);
|
|
|
+ }
|
|
|
+ //添加次朋友圈评论用户的id
|
|
|
+ for (CircleBean.DBean.ListBean.Comment comment : bean.getComments_list()){
|
|
|
+ if (!userList.contains(comment.getUser_id()))
|
|
|
+ userList.add(comment.getUser_id());
|
|
|
+ }
|
|
|
+
|
|
|
+ //使用NIM SDK更新用户信息并将用户信息显示出来
|
|
|
+ NIMClient.getService(UserService.class).fetchUserInfo(userList).setCallback(new RequestCallback<List<NimUserInfo>>() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(List<NimUserInfo> user) {
|
|
|
+
|
|
|
+ //有用户名显示用户名,无用户名显示用户ID
|
|
|
+ if (getUserName(bean.getUser_id()).trim().equals("")){
|
|
|
+ holder.usernameTV.setText(bean.getUser_id());
|
|
|
+ }else {
|
|
|
+ holder.usernameTV.setText(getUserName(bean.getUser_id()));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ String allLikedUser = "";
|
|
|
+ for (String likedUser:bean.getLike_users()){
|
|
|
+ allLikedUser += (getUserName(likedUser) + ",");
|
|
|
+ }
|
|
|
+
|
|
|
+ Log.e("CommentsTAG","以下用户赞了" + allLikedUser);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onFailed(int i) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onException(Throwable throwable) {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ //加载thumbs
|
|
|
+ GridViewAdapter gridViewAdapter = new GridViewAdapter(bean.getThumbs());
|
|
|
+ if (bean.getThumbs().size() > 4){
|
|
|
+ //默认为两列,如果超过4张图则显示为3列
|
|
|
+ holder.gridView.setNumColumns(3);
|
|
|
+ }
|
|
|
+
|
|
|
+ holder.gridView.setAdapter(gridViewAdapter);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int getItemCount() {
|
|
|
+ return data.size();
|
|
|
+ }
|
|
|
+
|
|
|
+ private String getUserName(String userId){
|
|
|
+ return NIMClient.getService(UserService.class).getUserInfo(userId).getName();
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setOnItemClickListener(OnItemClickListener listener){
|
|
|
+ this.listener = listener;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void addAll(CircleBean bean){
|
|
|
+ this.data.addAll(bean.getD().getList());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ if (listener != null) listener.onItemClick(v);
|
|
|
+ }
|
|
|
+
|
|
|
+ class CircleListViewHolder extends RecyclerView.ViewHolder{
|
|
|
+ private CardView layout;
|
|
|
+ private TextView usernameTV
|
|
|
+ ,contentTV
|
|
|
+ ,locationTV
|
|
|
+ ,dateTV
|
|
|
+ ,visitNumTv
|
|
|
+ ,likesNumTV;
|
|
|
+ private ImgGridView gridView;
|
|
|
+ private ImageView avatar,likedImg;
|
|
|
+
|
|
|
+ public CircleListViewHolder(View v) {
|
|
|
+ super(v);
|
|
|
+ layout = (CardView) v.findViewById(R.id.circle_item_cardview);
|
|
|
+ gridView = (ImgGridView) v.findViewById(R.id.gridview_imgs);
|
|
|
+ usernameTV = (TextView) v.findViewById(R.id.username_tv);
|
|
|
+ contentTV = (TextView) v.findViewById(R.id.user_content_tv);
|
|
|
+ locationTV = (TextView) v.findViewById(R.id.location_tv);
|
|
|
+ dateTV = (TextView) v.findViewById(R.id.date_tv);
|
|
|
+ visitNumTv = (TextView) v.findViewById(visit_num_tv);
|
|
|
+ likesNumTV = (TextView) v.findViewById(R.id.likes_num_tv);
|
|
|
+
|
|
|
+ avatar = (ImageView) v.findViewById(R.id.avatar_img);
|
|
|
+ likedImg = (ImageView) v.findViewById(R.id.liked_img);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|