package in.srain.cube.demo.ui.fragment; import android.content.Intent; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.ListView; import android.widget.TextView; import in.srain.cube.demo.R; import in.srain.cube.demo.ui.activity.PagerTabIndicatorActivity; import in.srain.cube.demo.ui.imageloader.ImageLoaderHomeFragment; import in.srain.cube.demo.ui.loadmore.LoadMoreHomeFragment; import in.srain.cube.demo.ui.localcache.LocalCacheFragment; import in.srain.cube.demo.ui.localcache.LocalCacheHomeFragment; import in.srain.cube.demo.ui.request.RequestHomeFragment; import in.srain.cube.demo.ui.viewholderdemo.ViewHolderHomeFragment; import in.srain.cube.mints.base.MenuItemFragment; import in.srain.cube.util.LocalDisplay; import in.srain.cube.views.list.ListViewDataAdapter; import in.srain.cube.views.list.ViewHolderBase; import in.srain.cube.views.ptr.PtrDefaultHandler; import in.srain.cube.views.ptr.PtrFrameLayout; import in.srain.cube.views.ptr.PtrHandler; import in.srain.cube.views.ptr.header.StoreHouseHeader; import java.util.ArrayList; public class CubeDemoHomeFragment extends MenuItemFragment { @Override protected void addItemInfo(ArrayList<MenuItemInfo> itemInfos) { itemInfos.add(newItemInfo(R.string.cube_demo_block_image_loader, "#4d90fe", new OnClickListener() { @Override public void onClick(View v) { getContext().pushFragmentToBackStack(ImageLoaderHomeFragment.class, null); } })); itemInfos.add(newItemInfo(R.string.cube_demo_view_holder, "#4d90fe", new OnClickListener() { @Override public void onClick(View v) { getContext().pushFragmentToBackStack(ViewHolderHomeFragment.class, null); } })); itemInfos.add(newItemInfo(R.string.cube_demo_slider_banner, "#4d90fe", new OnClickListener() { @Override public void onClick(View v) { getContext().pushFragmentToBackStack(SliderBannerFragment.class, null); } })); itemInfos.add(newItemInfo(R.string.cube_demo_load_more_demo, "#4d90fe", new OnClickListener() { @Override public void onClick(View v) { getContext().pushFragmentToBackStack(LoadMoreHomeFragment.class, null); } })); itemInfos.add(newItemInfo(R.string.cube_demo_local_cache, "#4d90fe", new OnClickListener() { @Override public void onClick(View v) { getContext().pushFragmentToBackStack(LocalCacheHomeFragment.class, null); } })); itemInfos.add(newItemInfo(R.string.cube_demo_request_demo, "#4d90fe", new OnClickListener() { @Override public void onClick(View v) { getContext().pushFragmentToBackStack(RequestHomeFragment.class, null); } })); itemInfos.add(newItemInfo(R.string.cube_demo_grid_view_with_header_and_footer, "#4d90fe", new OnClickListener() { @Override public void onClick(View v) { getContext().pushFragmentToBackStack(GridViewWithHeaderAndFooterFragment.class, null); } })); itemInfos.add(newItemInfo("Dot View", "#4d90fe", new OnClickListener() { @Override public void onClick(View v) { getContext().pushFragmentToBackStack(DotViewFragment.class, null); } })); itemInfos.add(newItemInfo("Tab", "#4d90fe", new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); Class<?> dstClassName = PagerTabIndicatorActivity.class; intent.setClass(getActivity(), dstClassName); startActivity(intent); } })); } @Override protected void setupViews(View view) { setHeaderTitle(R.string.cube_demo_home_title); final PtrFrameLayout ptrFrameLayout = (PtrFrameLayout) view.findViewById(R.id.fragment_home_ptr_frame); StoreHouseHeader header = new StoreHouseHeader(getContext()); header.setPadding(0, LocalDisplay.dp2px(20), 0, LocalDisplay.dp2px(20)); header.initWithString(getString(R.string.cube_demo_home_title)); ptrFrameLayout.setDurationToCloseHeader(1500); ptrFrameLayout.setHeaderView(header); ptrFrameLayout.addPtrUIHandler(header); ptrFrameLayout.setPtrHandler(new PtrHandler() { @Override public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) { return PtrDefaultHandler.checkContentCanBePulledDown(frame, content, header); } @Override public void onRefreshBegin(PtrFrameLayout frame) { ptrFrameLayout.postDelayed(new Runnable() { @Override public void run() { ptrFrameLayout.refreshComplete(); } }, 1500); } }); final ListViewDataAdapter<MenuItemInfo> adapter = new ListViewDataAdapter<MenuItemInfo>(); adapter.setViewHolderClass(getContext(), ViewHolder.class); ListView listView = (ListView) view.findViewById(R.id.fragment_home_menu_list_view); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { adapter.getItem(position).onClick(view); } }); listView.setAdapter(adapter); adapter.getDataList().addAll(mItemInfos); adapter.notifyDataSetChanged(); } @Override protected int getLayoutId() { return R.layout.fragment_home; } static class ViewHolder extends ViewHolderBase<MenuItemInfo> { private TextView mTitleTextView; @Override public View createView(LayoutInflater layoutInflater) { View view = layoutInflater.inflate(R.layout.home_menu_list_item, null); mTitleTextView = (TextView) view.findViewById(R.id.home_menu_list_item_title); return view; } @Override public void showData(int position, MenuItemInfo itemData) { mTitleTextView.setBackgroundColor(itemData.getColor()); mTitleTextView.setText(itemData.getTitle()); } } }