package com.konka.music.ui.fragment; import java.util.ArrayList; import android.os.Bundle; import android.support.v4.content.Loader; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Button; import android.widget.GridView; import android.widget.ImageView; import android.widget.TextView; import com.konka.music.R; import com.konka.music.adapter.ArrayAdapter; import com.konka.music.pojo.SmallLabelInfo; import com.konka.music.ui.view.ProgressLayout; import com.konka.music.util.ArrayUtils; import com.konka.music.util.Assist; import com.konka.music.util.CreateViewUtil; import com.konka.music.util.FragmentManagerUtil; import com.konka.music.util.ViewUtility; import com.kubeiwu.baseclass.loader.BaseLoaderCallbacksFragment; /** * 榜单和小标签 * * @author Administrator * */ public class BigLabelFragment_Abstrct extends BaseLoaderCallbacksFragment<ArrayList<SmallLabelInfo>> implements OnClickListener { private View rootView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { rootView = CreateViewUtil.onCreateView(inflater, container, savedInstanceState, rootView, R.layout.net_yuecool_gradview_layout); return rootView; } class BigLabelViewHolder { private GridView gridView; private BigLabelAdapter labelAdapter; private ProgressLayout progressLayout; View fail; Button btn_refresh; } BigLabelViewHolder bigLabelViewHolder; private boolean loaded = false;// 数据加载成功的标志 private boolean viewinited = false; @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); if (rootView.getTag() == null) { bigLabelViewHolder = new BigLabelViewHolder(); bigLabelViewHolder.gridView = ViewUtility.findViewById(view, R.id.net_yuecool_gridview_id); bigLabelViewHolder.progressLayout = ViewUtility.findViewById(view, R.id.progress_layout); bigLabelViewHolder.labelAdapter = new BigLabelAdapter(); bigLabelViewHolder.gridView.setAdapter(bigLabelViewHolder.labelAdapter); bigLabelViewHolder.gridView.setEmptyView(ViewUtility.findViewById(view, R.id.empty_loading)); bigLabelViewHolder.fail = ViewUtility.findViewById(view, R.id.refresh_layout); bigLabelViewHolder.btn_refresh = ViewUtility.findViewById(bigLabelViewHolder.fail, R.id.btn_refresh, this); bigLabelViewHolder.gridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); SmallLabelInfo smallLabel = bigLabelViewHolder.labelAdapter.getItem(position); int smallLabelId = smallLabel.getId(); String imageurl = smallLabel.getImageurl(); String name = smallLabel.getSmallLabelName(); // ft.replace(R.id.content, SmallLablePalyListFragment.newInstance(smallLabelId, imageurl, name)); // ft.addToBackStack(null); // ft.commit(); FragmentManagerUtil.swichFragment(getActivity().getSupportFragmentManager(), SmallLablePalyListFragment.newInstance(smallLabelId, imageurl, name)); } }); // getLoaderManager().initLoader(Assist.BIGLABEL_LOADER_ID, null, this); rootView.setTag(bigLabelViewHolder); } else { bigLabelViewHolder = (BigLabelViewHolder) rootView.getTag(); } System.out.println("BigLabelFragment_Abstrct--onViewCreated"); viewinited = true; lazyLoad(); } @Override protected void lazyLoad() { super.lazyLoad(); if (viewinited && isVisible ) { getLoaderManager().initLoader(Assist.BIGLABEL_LOADER_ID, null, this); } } @Override public void onLowMemory() { super.onLowMemory(); Assist.imageLoader.clearMemoryCache(); } @Override public Loader<ArrayList<SmallLabelInfo>> onCreateLoader(int arg0, Bundle arg1) { bigLabelViewHolder.progressLayout.setPressed(true); return super.onCreateLoader(arg0, arg1); } @Override public void onLoadFinished(Loader<ArrayList<SmallLabelInfo>> arg0, ArrayList<SmallLabelInfo> arg1) { super.onLoadFinished(arg0, arg1); if (!ArrayUtils.isEmpty(arg1)) { bigLabelViewHolder.progressLayout.setPressed(false); bigLabelViewHolder.labelAdapter.setmItems(arg1); } else { if (bigLabelViewHolder.labelAdapter.getCount() == 0) { bigLabelViewHolder.fail.setVisibility(View.VISIBLE); } } } /** * 大标签里面放的是小标签 * */ class BigLabelAdapter extends ArrayAdapter<SmallLabelInfo> { @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (convertView == null || convertView.getTag() == null) { viewHolder = new ViewHolder(); convertView = LayoutInflater.from(getActivity()).inflate(R.layout.net_yuecool_gradview_layout_item, parent, false); viewHolder.label_id = ViewUtility.findViewById(convertView, R.id.label_id); viewHolder.lableImage_id = ViewUtility.findViewById(convertView, R.id.lableImage_id); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } SmallLabelInfo smallLabelInfo = getItem(position); viewHolder.label_id.setText(getItem(position).getSmallLabelName()); Assist.imageLoader.displayImage(smallLabelInfo.getImageurl(), viewHolder.lableImage_id, Assist.options); return convertView; } class ViewHolder { TextView label_id; ImageView lableImage_id; } } @Override public void onClick(View v) { getLoaderManager().restartLoader(Assist.BIGLABEL_LOADER_ID, null, this); } }