我正在尝试将新RecyclerView
添加到Fragement
内的项目中。我正在关注Link1的视频教程。当我尝试为RecyclerView
创建适配器时,我开始收到此错误。我正在使用Eclipse Juno。我无法弄清楚问题所在。请帮忙
我的代码:
public class RecycleAdapter extends RecyclerView.Adapter<RecycleAdapter.MyViewHolder> {
private LayoutInflater inflator;
List <Item> data = Collections.EMPTY_LIST;
public RecycleAdapter(Context context, List<Item> data){
inflator = LayoutInflater.from(context);
}
@Override
public int getItemCount() {
// TODO Auto-generated method stub
return data.size();
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int arg1) {
View view = inflator.inflate(R.layout.row_staggered_new, parent, false);
MyViewHolder holder = MyViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Item current = data.get(position);
holder.text.setText(current.title);
holder.image.setImageResource(current.image);
}
public static class MyViewHolder extends RecyclerView.ViewHolder{
public ImageView image;
public TextView text;
public MyViewHolder(View itemView) {
super(itemView);
image = (ImageView) itemView.findViewById(R.id.imageView1);
text = (TextView) itemView.findViewById(R.id.textview1);
}
}
}
MyViewHolder
和RecycleAdapter
都提供错误"The hierarchy of the type RecycleAdapter is inconsistent"
。
在RecycleAdapter
的扩展部分中,它显示错误
"Bound mismatch: The type RecycleAdapter.MyViewHolder is not a valid substitute for the bounded parameter <VH extends RecyclerView.ViewHolder> of the type RecyclerView.Adapter<VH>"
。
任何指针?
答案 0 :(得分:10)
我发现了问题。问题是我使用的是旧版本和v4支持库,它不包含类android.support.v4.view.ScrollingView类。我用新版本替换了旧的v4库,错误消失了!
答案 1 :(得分:1)
我发现了问题。问题是我使用的是旧版本和v4支持库,它不包含类android.support.v4.view.ScrollingView类。我用新版本替换了旧的v4库,错误消失了!
对我来说这是有用的,除了答案:
Eclipse将包含一个名为“appcompat_v7”的项目,我们也应该替换它的库。
答案 2 :(得分:0)
在onBindViewHolder
方法中,您无法将RecyclerView.ViewHolder类直接转换为MyViewHolder
,因为后者是前者的扩展。
你需要明确地执行演员表,即
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
MyViewHolder holder = (MyViewHolder)viewHolder;
...
}
修改
您有多个编译问题,但您提到的问题是因为您正在扩展错误的类类型。该类应该像这样扩展
extends RecyclerView.Adapter<RecyclerView.ViewHolder>
答案 3 :(得分:0)
还有一个解决方案是......
android-support-v7-appcompat
到工作区
享受