如何根据recyclerview中加载的图像数量更改textview中的文本

问题描述

你好,我想根据 recylerview 中有多少图像来更改文本(以数字表示)

例如,如果recyclerview中有10张图像,则图像上应该有数字,例如图像1的图像,图像2的文本将为1,文本将为2,依此类推

只是为了知道 textview 是图像视图上的叠加

我希望数字不仅是 1,还应该根据图像进行排列,例如,如果 recyler 视图有 10 个图像 1 将在文本中显示 1 图像 2 将在文本中显示 2

I want the Numbers to be not only 1 it should be arrage according to images for eg if recyler view has 10 image 1 will show 1 in text image 2 will show 2 in text

这里是代码 XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <com.google.android.material.card.MaterialCardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginStart="5dp"
        android:layout_marginTop="11dp"
        android:layout_marginEnd="5dp"
        app:cardElevation="1dp"
        app:cardMaxElevation="4dp">

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <com.google.android.material.imageview.ShapeableImageView
                android:id="@+id/imageView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:contentDescription="@string/todo"
                app:shapeAppearanceOverlay="@style/RoundedCorner" />

            <TextView
                android:id="@+id/rankednumber"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:layout_gravity="start|left"
                android:layout_marginStart="10dp"
                android:layout_marginTop="10dp"
                android:background="@drawable/circular_background_text"
                android:text="@string/_1"
                android:textAlignment="center"
                android:textColor="@color/white"
                android:textSize="20sp"
                android:textStyle="bold|italic"
                tools:ignore="ObsoleteLayoutParam,RtlCompat,RtlHardcoded" />
        </FrameLayout>
    </com.google.android.material.card.MaterialCardView>
</RelativeLayout>

PostAdapter 类

public class PostAdapter_Search extends RecyclerView.Adapter<PostAdapter_Search.PostViewHolder> {
    public static List<Upload> mUploads;
    public Context mcontext;
    View view;


    public PostAdapter_Search(Context context,List<Upload> uploads) {
        mUploads = uploads;
        mcontext = context;
    }


    @NonNull
    @Override
    public PostViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
        view = LayoutInflater.from(mcontext).inflate(R.layout.post_item_container_search,parent,false);
        return new PostViewHolder(view);

    }

    @Override
    public void onBindViewHolder(@NonNull PostViewHolder holder,int position) {
        Upload uploadCurrent = mUploads.get(position);
        Glide.with(mcontext)
                .load(uploadCurrent.getmImageUrl())
                .diskCacheStrategy(diskCacheStrategy.DATA)
                .fitCenter()
                .into(holder.imageView);


    }

    @Override
    public int getItemCount() {
        int limit = 10;
        return Math.min(mUploads.size(),limit);
    }

    public static class PostViewHolder extends RecyclerView.ViewHolder {
        ShapeableImageView imageView;
        TextView textView;

        public PostViewHolder(@NonNull View itemView) {
            super(itemView);
            imageView = itemView.findViewById(R.id.imageView);
            textView = itemView.findViewById(R.id.rankednumber);
        }


        public void setonItemClickListener(PostAdapter.OnItemClickListener listener) {

        }
    }

}

解决方法

抱歉,这种类型的库我从未使用过,但我添加了另一种方法来管理图像和照片,但我认为问题在于您不会去编辑您插入到布局中的 Textview,所以尝试这个并检查你是否得到了你需要的东西:

public void onBindViewHolder(@NonNull PostViewHolder holder,int position) {
    Upload uploadCurrent = mUploads.get(position);
    Glide.with(mcontext)
            .load(uploadCurrent.getmImageUrl())
            .diskCacheStrategy(DiskCacheStrategy.DATA)
            .fitCenter()
            .into(holder.imageView);
///Add this
 PostViewHolder Myholder = (PostViewHolder) holder;
 Myholder.textView.setText(String.valueOf(position));

这只是一个例子,然后你可以插入你喜欢的文字。 我希望被证明有帮助

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...