package cn.mutils.app.ui.adapter; import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.RelativeLayout; import cn.mutils.app.ui.core.UICore; /** * RelativeLayout implements {@link IItemView} */ public abstract class ItemView<DATA_ITEM> extends RelativeLayout implements IItemView<DATA_ITEM> { protected int mPosition = -1; protected DATA_ITEM mDataProvider; protected IItemAdapter<DATA_ITEM> mAdapter; public ItemView(Context context) { super(context); } public ItemView(Context context, AttributeSet attrs) { super(context, attrs); } public ItemView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public void setAdapter(IItemAdapter<DATA_ITEM> adapter) { mAdapter = adapter; } public IItemAdapter<DATA_ITEM> getAdapter() { return mAdapter; } public int getPosition() { return mPosition; } public void setPosition(int position) { mPosition = position; } public DATA_ITEM getDataProvider() { return mDataProvider; } public void setDataProvider(DATA_ITEM dataProvider) { mDataProvider = dataProvider; } public void notifyDataSetChanged() { if (this.mAdapter == null) { return; } this.mAdapter.notifyDataSetChanged(); } public void setContentView(View view) { this.removeAllViews(); this.addView(view); UICore.injectResources(this); UICore.injectEvents(this); } public void setContentView(int layoutResID) { this.removeAllViews(); LayoutInflater.from(this.getContext()).inflate(layoutResID, this); UICore.injectResources(this); UICore.injectEvents(this); } public <T extends View> T findViewById(int id, Class<T> viewClass) { return UICore.findViewById(this, id, viewClass); } @Override public View toView() { return this; } @Override public void onCreate() { UICore.injectContentView(this); } }