我在我的项目中使用DataBindings和RecyclerView.我有RecyclerView的基础适配器.看起来像这样
public abstract class BaseAdapter<T extends ViewDataBinding> extends RecyclerView.Adapter<BaseAdapter.ViewHolder> {
public BaseAdapter() {}
public class ViewHolder extends RecyclerView.ViewHolder {
public T binding;
public ViewHolder(View view) {
super(view);
binding = DataBindingUtil.bind(view);
}
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
... code ...
}
}
Run Code Online (Sandbox Code Playgroud)
ViewHolder扩展类只有绑定字段类型不同.在扩展BaseAdapter类的实现之后:
public class BaseAdapterExtended extends BaseAdapter<BaseAdapterExtendedBinding> {
public BaseAdapterExtended(ArrayList<ItemModel> itemModels) {
super();
mData = itemModels;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
return new ViewHolder(BaseAdapterExtendedBinding.inflate(inflater, parent, false).getRoot());
}
@Override …Run Code Online (Sandbox Code Playgroud) 我想在GWT中创建一个复合,它需要一个扩展类并实现接口的类.Psudo代码如下(它显然不起作用):
class GridRow<T extends Widget implements HasText> extends Composite{
//more codes here
}
Run Code Online (Sandbox Code Playgroud)