Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为RecyclerView的单个项目设置文本_Java_Android_Arraylist_Android Recyclerview_Textview - Fatal编程技术网

Java 为RecyclerView的单个项目设置文本

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

我需要为我的Recycler视图的每个元素设置一个标题。我该怎么做呢

这是我的java代码:

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);

     }
 }
  }