package org.emdev.ui.adapters;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class BaseViewHolder {
private View view;
public void init(final View view) {
this.view = view;
view.setTag(this);
}
public final View getView() {
return view;
}
@SuppressWarnings("unchecked")
public static <T extends BaseViewHolder> T getOrCreateViewHolder(final Class<T> clazz, final int resID,
final View view, final ViewGroup parent) {
if (view == null) {
final Context context = parent.getContext();
try {
final T holder = clazz.newInstance();
holder.init(LayoutInflater.from(context).inflate(resID, parent, false));
return holder;
} catch (final Throwable ex) {
throw new RuntimeException("ViewHolder creation failed", ex);
}
}
return (T) view.getTag();
}
}