【问题标题】:ListView inside ListView adapter AndroidListView 内的 ListView 适配器 Android
【发布时间】:2020-06-14 01:17:47
【问题描述】:

我有一个模拟 Facebook 提要的代码 我想添加一个评论选项来打开一个新的列表视图,其中包含每个帖子的多个 cmets

主列表视图由适配器定义,我将如何以单击评论按钮真正打开每个帖子中不同 cmets 的列表的方式完成论文,或者如果我想要一些不显示评论帖子仍未得到答复? 这是我的适配器


import android.R.layout;
import android.annotation.SuppressLint;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import java.util.ArrayList;
import java.util.List;

public class FacebookWallAdapter extends ArrayAdapter {
    private List<FacebookWallPost> posts;
    private List<String> comments;
    private ListView commentsListView;
    private Context activity;
    private int postsLayoutId;
    public FacebookWallAdapter(@NonNull Context context, int resource, @NonNull List objects) {
        super(context, resource, objects);
        this.posts = objects;
        this.activity = context;
        this.postsLayoutId = resource;
    }

    @SuppressLint("ResourceType")
    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        LayoutInflater inflater = LayoutInflater.from(this.activity);
        convertView = inflater.inflate(this.postsLayoutId,parent,false);
        TextView writerName = convertView.findViewById(R.id.writerName);
        TextView date = convertView.findViewById(R.id.date);
        TextView postText = convertView.findViewById(R.id.postText);
        ImageView profilePic = convertView.findViewById(R.id.profilePicture);
        ImageView postImage = convertView.findViewById(R.id.postImage);
        ImageView likeButtonStatus = convertView.findViewById(R.id.likeButton);
        ImageView commentsButton = convertView.findViewById(R.id.commentButton);
        FacebookWallPost thisPost = this.posts.get(position);
        writerName.setText(thisPost.getPostWriter());
        date.setText(thisPost.getDate());
        postText.setText(thisPost.getPostText());
        profilePic.setImageResource(thisPost.getProfilePic());
        postImage.setImageResource(thisPost.getPostImage());
        if(thisPost.getLikeStatus()){
            likeButtonStatus.setImageResource(R.drawable.like_blue);

        }
        else
        {            likeButtonStatus.setImageResource(R.drawable.like_black);
        }
        likeButtonStatus.setOnClickListener((View v) -> {
          if (thisPost.getLikeStatus())
          {

              thisPost.setLikeStatus(false);
          }
          else {
              thisPost.setLikeStatus(true);
          }
          this.notifyDataSetChanged();

        });




        return convertView;
    }
}

我尝试添加另一个名为:cmetsListView

的列表视图

还有一个 cmets 列表:List cmets

但是我无法正确定义Adapter,怎么办?

【问题讨论】:

    标签: java android listview


    【解决方案1】:

    您可以查看可扩展的列表视图: https://developer.android.com/reference/android/widget/ExpandableListView

    这允许您在其他列表视图中拥有列表视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多