package oak.viewmodel; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * Created by ericrichardson on 1/9/14. */ public class ViewModelUtil { private ViewModelUtil() { } /** * A utility function for getting a ViewModel out of a view in an adapter. If convertView is * null, the view is inflated, otherwise convertView is returned. (The view to inflate must * implement ViewModel). * <p/> * A standard implementation would call this, populate the ViewModel, then return it. * <pre> * ViewModel{@code <T>} view = getViewModel(inflater, layoutId, convertView, parent); * view.populate(getItem(position)); * return (View) view; * </pre> * * @param inflater the view inflater * @param layoutId the layout to inflate * @param convertView the convertView from adapter.getView() * @param parent the parent from adapter.getView() * @param <T> the type of item in the ViewModel * @return the ViewModel */ public static <T> ViewModel<T> getViewModel(LayoutInflater inflater, int layoutId, View convertView, ViewGroup parent) { if (convertView == null) { return (ViewModel<T>) inflater.inflate(layoutId, parent, false); } else { return (ViewModel<T>) convertView; } } public static <T> ViewModel<T> getViewModel(LayoutInflater inflater, int layoutId, ViewGroup parent) { return getViewModel(inflater, layoutId, null, parent); } }