Java 为RecyclerView的单个项目设置文本
我需要为我的Recycler视图的每个元素设置一个标题。我该怎么做呢 这是我的java代码:Java 为RecyclerView的单个项目设置文本,java,android,arraylist,android-recyclerview,textview,Java,Android,Arraylist,Android Recyclerview,Textview,我需要为我的Recycler视图的每个元素设置一个标题。我该怎么做呢 这是我的java代码: public class HorizontalAdapterViewTopDieci extends RecyclerView.Adapter<HorizontalAdapterViewTopDieci.HorizontalViewHolder> { private int[] items; public HorizontalAdapterViewTopDieci(int[] items
public class HorizontalAdapterViewTopDieci extends RecyclerView.Adapter<HorizontalAdapterViewTopDieci.HorizontalViewHolder>
{
private int[] items;
public HorizontalAdapterViewTopDieci(int[] items) {
this.items = items;
}
@Override
public HorizontalViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.item_layout_recycler_view_top_10, parent, false);
return new HorizontalViewHolder(view);
}
@Override
public void onBindViewHolder(HorizontalViewHolder holder, int position) {
holder.image.setImageResource(items[position]);
holder.titleText.setText("Recipe");
}
@Override
public int getItemCount() {
return items.length;
}
public class HorizontalViewHolder extends RecyclerView.ViewHolder {
ImageView image;
TextView titleText;
public HorizontalViewHolder(View itemView) {
super(itemView);
image = itemView.findViewById(R.id.image_view_ricette_categorie_primi_top_10);
titleText = itemView.findViewById(R.id.titleText);
}
} }
公共类HorizontalAdapterViewTopDieci扩展了RecyclerView.Adapter
{
私人物品;
公共水平自适应EWTOPDIECI(int[]项){
这个项目=项目;
}
@凌驾
public HorizontalViewHolder onCreateViewHolder(视图组父级,int-viewType){
LayoutInflater充气器=LayoutInflater.from(parent.getContext());
视图=充气机。充气(R.layout.item\u layout\u recycler\u View\u top\u 10,父项,false);
返回新的HorizontalViewHolder(视图);
}
@凌驾
BindViewHolder上的公共无效(水平视图持有人,内部位置){
holder.image.setImageResource(项目[位置]);
holder.titleText.setText(“配方”);
}
@凌驾
public int getItemCount(){
返回项目。长度;
}
公共类HorizontalViewHolder扩展了RecyclerView.ViewHolder{
图像视图图像;
文本视图标题文本;
公共水平视图持有者(视图项视图){
超级(项目视图);
image=itemView.findviewbyd(R.id.image\u view\u ricette\u categorie\u primi\u top\u 10);
titleText=itemView.findviewbyd(R.id.titleText);
}
} }
我还为项目(在本例中为图像)创建xml布局:
我试图在这里添加一个文本视图,对齐并居中,但如何设置此文本
更新:这是您的解决方案,但有什么问题吗?将单项xml创建为:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:orientation="vertical"
>
<ImageView
android:id="@+id/image_view_ricette_categorie_primi_top_10"
android:layout_width="125dp"
android:layout_height="150dp"
android:scaleType="centerCrop"
android:src="@drawable/ic_launcher_background"
android:layout_gravity="center_horizontal"
/>
<TextView
android:id="@+id/titleText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
现在将适配器修改为:
public class HorizontalAdapterImageViewTopDieci extends RecyclerView.Adapter<HorizontalAdapterImageViewTopDieci.HorizontalViewHolder>
{
private int[] items;
public HorizontalAdapterImageViewTopDieci(int[] items) {
this.items = items;
}
@Override
public HorizontalViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.item_layout_recycler_view_immagini_top_10, parent, false);
return new HorizontalViewHolder(view);
}
@Override
public void onBindViewHolder(HorizontalViewHolder holder, int position) {
holder.image.setImageResource(items[position]);
holder.titleText.setText("Image"+position);
}
@Override
public int getItemCount() {
return items.length;
}
public class HorizontalViewHolder extends RecyclerView.ViewHolder {
ImageView image;
TextView titleText;
public HorizontalViewHolder(View itemView) {
super(itemView);
image = itemView.findViewById(R.id.image_view_ricette_categorie_primi_top_10);
titleText = itemView.findViewById(R.id.titleText);
}
}
}
公共类HorizontalAdapterImageViewTopDieci扩展了RecyclerView.Adapter
{
私人物品;
public HorizontalAdapterImageViewTopDieci(int[]项){
这个项目=项目;
}
@凌驾
public HorizontalViewHolder onCreateViewHolder(视图组父级,int-viewType){
LayoutInflater充气器=LayoutInflater.from(parent.getContext());
视图=充气机。充气(R.layout.item\u layout\u recycler\u View\u immagini\u top\u 10,父项,false);
返回新的HorizontalViewHolder(视图);
}
@凌驾
BindViewHolder上的公共无效(水平视图持有人,内部位置){
holder.image.setImageResource(项目[位置]);
holder.titleText.setText(“图像”+位置);
}
@凌驾
public int getItemCount(){
返回项目。长度;
}
公共类HorizontalViewHolder扩展了RecyclerView.ViewHolder{
图像视图图像;
文本视图标题文本;
公共水平视图持有者(视图项视图){
超级(项目视图);
image=itemView.findviewbyd(R.id.image\u view\u ricette\u categorie\u primi\u top\u 10);
titleText=itemView.findviewbyd(R.id.titleText);
}
}
}
请同时附上HorizontalAdapterImageViewTopDieci类。您应该在xml布局中添加一个文本视图,并在适配器中以编程方式设置文本。@gabodroid在这里您的数组只有可绘图项。您想在每行中显示什么文本?您想在imageview上显示文本吗?我需要显示一个字符串,例如:“Image 1”您想为列表中的所有文本设置单个文本,所以将代码更改为:holder.titleText.setText(“配方”);是的,但不是一个静态文本,它会为每个图像更改。无论如何,它不起作用,在我的图像下方既没有显示“图像”也没有显示“配方”。Sir/女士,它目前在我这边起作用。你能在我的代码更新后用最新的代码更新代码吗??
public class HorizontalAdapterImageViewTopDieci extends RecyclerView.Adapter<HorizontalAdapterImageViewTopDieci.HorizontalViewHolder>
{
private int[] items;
public HorizontalAdapterImageViewTopDieci(int[] items) {
this.items = items;
}
@Override
public HorizontalViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.item_layout_recycler_view_immagini_top_10, parent, false);
return new HorizontalViewHolder(view);
}
@Override
public void onBindViewHolder(HorizontalViewHolder holder, int position) {
holder.image.setImageResource(items[position]);
holder.titleText.setText("Image"+position);
}
@Override
public int getItemCount() {
return items.length;
}
public class HorizontalViewHolder extends RecyclerView.ViewHolder {
ImageView image;
TextView titleText;
public HorizontalViewHolder(View itemView) {
super(itemView);
image = itemView.findViewById(R.id.image_view_ricette_categorie_primi_top_10);
titleText = itemView.findViewById(R.id.titleText);
}
}
}