【发布时间】:2015-11-07 15:56:06
【问题描述】:
我尝试了很多例子,但没有一个适合。请看一下我的代码。在 onCreateViewHolder 我有错误
Error:(64, 17) 错误:名称冲突:MyAdapter 中的 onBindViewHolder(ViewHolder,int) 和 Adapter 中的 onBindViewHolder(VH,int) 具有相同的擦除,但两者都不会覆盖另一个 其中 VH 是一个类型变量: VH 扩展了在 Adapter 类中声明的 ViewHolder
和
Error:(51, 36) 错误:MyAdapter 中的 onCreateViewHolder(ViewGroup,int) 无法覆盖 Adapter 中的 onCreateViewHolder(ViewGroup,int) 返回类型 ViewHolder 与 MyViewHolder 不兼容 其中 VH 是一个类型变量: VH 扩展了在 Adapter 类中声明的 ViewHolder
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
ArrayList<String> dataset_;
public static final int MODE_DATA = 0;
public static final int MODE_LOADING = 1;
public static class MyViewHolder extends RecyclerView.ViewHolder{
public TextView mTextView;
public TextView mTextView2;
public MyViewHolder(View v){
super(v);
mTextView = (TextView) itemView.findViewById(R.id.textView);
mTextView2 = (TextView) itemView.findViewById(R.id.textView2);
}
}
public static class MyLoadingViewHolder extends RecyclerView.ViewHolder{
public MyLoadingViewHolder(View v){
super(v);
}
}
@Override
public int getItemViewType(int position) {
if (position == dataset_.size() - 1) {
return MODE_LOADING;
} else {
return MODE_DATA;
}
}
public MyAdapter (ArrayList<String> dataset){
dataset_ = dataset;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
if (viewType == MODE_LOADING) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.progress_bar, parent, false);
MyLoadingViewHolder loadingViewHolder = new MyLoadingViewHolder(v);
return loadingViewHolder;
} else {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.my_text_view, parent, false);
MyViewHolder myViewHolder = new MyViewHolder(v);
return myViewHolder;
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder,int position){
if (position == MODE_LOADING){
// Do nothig just show progress bar
}
else {
((MyViewHolder)holder).mTextView.setText(dataset_.get(position));
((MyViewHolder)holder).mTextView2.setText(dataset_.get(position));
}
}
@Override
public int getItemCount(){
return dataset_.size();
}
}
我的进度条
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/progress_bar_panel"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ProgressBar
android:id="@+id/progress_bar"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:visibility="visible" />
</RelativeLayout>
【问题讨论】:
标签: android android-arrayadapter android-recyclerview