我有一個錯誤,說。 錯誤:找不到符號 Vholder.setData(mValues.get(position))。 ^ 符號:方法setData(Object) 位置:ViewHolder型別的變數Vholder 我怎樣才能解決這些問題?
以下是代碼。這是我的網格布局的配接器類。我不知道為什么它不能作業。
public class TrackAdapter extends RecyclerView. 配接器 {
ArrayList mValues;
Context mContext。
protected ItemListener mListener。
public TrackAdapter(Context context, ArrayList values, ItemListener itemListener) {
mValues = values;
mContext = 背景關系。
mListener=itemListener。
}
public class ViewHolder extends RecyclerView. ViewHolder implements View.OnClickListener {
public TextView textView;
public ImageView imageView;
public RelativeLayout relativeLayout;
TrackData資料。
public ViewHolder(View v) {
super(v)。
v.setOnClickListener(this)。
textView = (TextView) v.findViewById(R.id.textView);
imageView = (ImageView) v.findViewById(R.id.imageView);
relativeLayout = (RelativeLayout) v.findViewById(R.id.relativeLayout)。
}
public void setData(TrackData data) {
this.data = data;
textView.setText(data.text);
imageView.setImageResource(data.icon);
relativeLayout.setBackgroundColor(Color.parseColor(data.gridBGColor))。
}
@Override
public void onClick(View view) {
if (mListener != null) {
mListener.onItemClick(data)。
}
}
}
@Override[/span
public TrackAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(mContext).inflate(R.layout.makati_recycler_grid_track, parent, false) 。
return new ViewHolder(view)。
}
@Override[/span
**public void onBindViewHolder(@NonNull RecyclerView. ViewHolder Vholder, int position) {
Vholder.setData(mValues.get(position))。
}**
@Override
public int getItemCount() {
return mValues.size()。
}
public interface ItemListener {
void onItemClick(TrackData data)。
}
或者這里有一行
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder Vholder, int position) {
Vholder.setData(mValues.get(position))。
}
uj5u.com熱心網友回復:
你必須用RecyclerView型別來擴展你的TrackAdapter,即
。public class TrackAdapter extends RecyclerView.Adapter< ViewHolder >
enter code here
uj5u.com熱心網友回復:
你應該像這樣把RecyclerView.ViewHolder投到TrackAdapter.ViewHolder:
if (Vholder instanceof TrackAdapter.ViewHolder){
((TrackAdapter.ViewHolder)Vholder).setData(mValues.get(position))。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/321606.html
標籤:
上一篇:在Laravel8中,從不同的控制器中傳遞一個以上的變數到一個單一的視圖。
下一篇:如何在選定的專案上設定旋鈕配接器
