【问题标题】:Cannot resolve method setText() in imageView无法解析 imageView 中的方法 setText()
【发布时间】:2020-12-28 03:24:30
【问题描述】:

我正在尝试在tutorial 之后在 Android Studio 中使用 Recyclerview 和 Cardview 做一个简单的项目。 但是我在onBindViewHolder 函数第 32 行收到一个错误,说它无法解析imageView 中的方法setText(),我不知道为什么,因为mTitle 不是ImageView,它是TextView:

package com.example.demoproject;


import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;
import android.content.Context;

public class MyAdapter extends RecyclerView.Adapter<MyHolder> {
    Context c;
    ArrayList<Model> models; // this array list creates a list of arrays which parameters define in my model class

    public MyAdapter(Context c, ArrayList<Model> models) {
        this.c = c;
        this.models = models;
    }

    @NonNull
    @Override
    public MyHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.row,null); // this line inflate my row
        return new MyHolder(view); // this will return my view to holder class
    }

    @Override
    public void onBindViewHolder(@NonNull MyHolder myHolder, int i) {
        myHolder.mTitle.setText(models.get(i).getTitle()); // here i is position

    }

    @Override
    public int getItemCount() {
        return 0;
    }
}

MyHolder.java:

package com.example.demoproject.

import android.view.View;
import android.widget.ImageView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

public class MyHolder extends RecyclerView.ViewHolder {
    ImageView mImaeView, mTitle;
    public MyHolder(@NonNull View itemView) {
        super(itemView);
        this.mImaeView = itemView.findViewById(R.id.imageIv);
        this.mTitle = itemView.findViewById(R.id.titleTv);
    }
}

【问题讨论】:

  • 可以加MyHolder类吗?
  • 当然。已经添加了。

标签: java android android-studio android-recyclerview android-cardview


【解决方案1】:

您的mTile 不是TextView,而是ImageView。改成这样:

ImageView mImaeView; 
TextView mTitle;

并确保itemView.findViewById(R.id.titleTv); 返回TextView。签入您的 xml 文件(回收站视图项),确保一切顺利,titleTvTextView

【讨论】:

    【解决方案2】:

    因为 setText() 方法是在 textview 上设置的,而不是在 imageView 上

    【讨论】:

      猜你喜欢
      • 2018-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      相关资源
      最近更新 更多