package org.aisen.android.ui.fragment; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.GridView; import org.aisen.android.R; import org.aisen.android.support.inject.ViewInject; import org.aisen.android.ui.fragment.adapter.BasicListAdapter; import org.aisen.android.ui.fragment.adapter.IPagingAdapter; import org.aisen.android.ui.fragment.itemview.AFooterItemView; import org.aisen.android.ui.fragment.itemview.AHeaderItemViewCreator; import java.io.Serializable; import java.util.ArrayList; /** * 维护GridView * * Created by wangdan on 16/1/21. */ public abstract class AGridFragment<T extends Serializable, Ts extends Serializable, Header extends Serializable> extends APagingFragment<T, Ts, Header, GridView> implements AdapterView.OnItemClickListener { @ViewInject(idStr = "gridview") private GridView gridView; @Override public int inflateContentView() { return R.layout.comm_ui_gridview; } @Override public GridView getRefreshView() { return gridView; } @Override protected void setupRefreshView(Bundle savedInstanceSate) { super.setupRefreshView(savedInstanceSate); // 设置事件 getRefreshView().setOnItemClickListener(this); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { } @Override protected IPagingAdapter<T> newAdapter(ArrayList<T> datas) { return new BasicListAdapter<>(this, datas); } @Override protected void bindAdapter(IPagingAdapter adapter) { if (getRefreshView().getAdapter() == null) getRefreshView().setAdapter((BasicListAdapter) adapter); } @Override protected void addFooterViewToRefreshView(AFooterItemView<?> footerItemView) { } @Override protected void addHeaderViewToRefreshView(AHeaderItemViewCreator<?> headerItemViewCreator) { } /** * 初始化ListView * * @param items */ public void setItems(ArrayList<T> items) { if (items == null) return; setViewVisiable(loadingLayout, View.GONE); setViewVisiable(loadFailureLayout, View.GONE); if (items.size() == 0 && emptyLayout != null) { setViewVisiable(emptyLayout, View.VISIBLE); setViewVisiable(contentLayout, View.GONE); } else { setViewVisiable(emptyLayout, View.GONE); setViewVisiable(contentLayout, View.VISIBLE); } setAdapterItems(items); if (getRefreshView().getAdapter() == null) { bindAdapter(getAdapter()); } else { getRefreshView().smoothScrollToPosition(0); getAdapter().notifyDataSetChanged(); } } }