package com.dreamspace.uucampus.ui.base; import android.content.Context; import android.support.v4.widget.SwipeRefreshLayout; import android.util.Log; import android.view.View; import android.widget.AdapterView; import com.dreamspace.uucampus.R; import com.dreamspace.uucampus.adapter.base.BasisAdapter; import com.dreamspace.uucampus.widget.LoadMoreListView; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.util.List; /** * Created by Administrator on 2015/8/8 0008. */ public abstract class BaseListFragment<T> extends BaseFragment { private LoadMoreListView moreListView; private BasisAdapter mAdapter; private SwipeRefreshLayout mSwipeRefreshLayout; private Class<?extends BasisAdapter> mAClass; public BaseListFragment(Class<? extends BasisAdapter> mAClass) { this.mAClass = mAClass; } @Override public int getLayoutId() { return R.layout.base_list_fragment; } @Override public void initViews(View view) { mSwipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swiperefresh_id); mSwipeRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_bright, android.R.color.holo_green_light, android.R.color.holo_orange_light, android.R.color.holo_red_light); mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { onPullDown(); } }); moreListView = (LoadMoreListView) view.findViewById(R.id.load_more_lv); moreListView.setOnLoadMoreListener(new LoadMoreListView.OnLoadMoreListener() { @Override public void onLoadMore() { onPullUp(); } }); } public void onPullUpFinished(){ moreListView.setLoading(false); } public void onPullDownFinished(){ mSwipeRefreshLayout.setRefreshing(false); } @Override public void initDatas() { try { Constructor c=mAClass.getConstructor(Context.class); mAdapter= (BasisAdapter) c.newInstance(getActivity()); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (java.lang.InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } moreListView.setAdapter(mAdapter); moreListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { onItemPicked((T)mAdapter.getItem(position),position); Log.i("INFO", "position: " + position); } }); getInitData(); } public void onItemPicked(T mEntity,int position){ } public abstract void onPullUp(); public abstract void onPullDown(); public abstract void getInitData(); public void refreshDate(List<T> mEntities) { mAdapter.setmEntities(mEntities); mAdapter.notifyDataSetChanged(); } }