/** * */ package com.hupu.games.fragment; import java.util.ArrayList; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.BaseExpandableListAdapter; import android.widget.ExpandableListView; import android.widget.ExpandableListView.OnChildClickListener; import android.widget.ExpandableListView.OnGroupClickListener; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; import com.hupu.games.R; import com.hupu.games.activity.DiscoveryWebViewActivity; import com.hupu.games.common.HupuLog; import com.hupu.games.data.DiscoveryEntity; import com.koushikdutta.urlimageviewhelper.UrlImageViewHelper; /** * @author panyongjun 发现页面 */ public class DiscoveryFragment extends BaseFragment { ExpandableListView mListView; ArrayList<ArrayList<DiscoveryEntity>> mDiscoverList; ArrayList<String> myRedPointList = null; LayoutInflater mInfInflater; public void setData(ArrayList<ArrayList<DiscoveryEntity>> discoverList) { mDiscoverList = discoverList; } //处理发现中的小红点信息 public void setRedPointData(ArrayList<String> reddotList){ myRedPointList = reddotList; mAdapter.notifyDataSetChanged(); HupuLog.e("papa", "发现页设置小红点"); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = initView( inflater); return v; } private View initView(LayoutInflater inflater) { View v = inflater.inflate(R.layout.fragment_discovery, null); mListView = (ExpandableListView) v.findViewById(R.id.list_discovery); mInfInflater = LayoutInflater.from(getActivity()); mListView.setAdapter(mAdapter); for (int i = 0; i < mAdapter.getGroupCount(); i++) { mListView.expandGroup(i); } mListView.setOnGroupClickListener(new OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { return true; } }); mListView.setOnChildClickListener(new OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { v.setBackgroundColor(mAct.getResources().getColor(R.color.dicovery_item_selector)); switchToWebView(mDiscoverList.get(groupPosition).get(childPosition).mDefaultTab, mDiscoverList.get(groupPosition).get(childPosition).mEn); return true; } }); mListView.setGroupIndicator(null); return v; } private void switchToWebView(String url,String mEname) { Intent in =new Intent(getActivity(),DiscoveryWebViewActivity.class); in.putExtra("url", url); if(mEname.equalsIgnoreCase("caipiao")){ in.putExtra("iscaipiao", true); } startActivity(in); } BaseExpandableListAdapter mAdapter = new BaseExpandableListAdapter() { class Holder { TextView txtName; ImageView imgLogo; ImageView imgRedPoint; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { Holder holder = new Holder(); convertView = mInfInflater.inflate(R.layout.item_discovery, null); holder.txtName = (TextView) convertView .findViewById(R.id.txt_name); holder.imgLogo = (ImageView) convertView .findViewById(R.id.img_logo); holder.imgRedPoint = (ImageView) convertView .findViewById(R.id.red_point); convertView.setTag(holder); /*else { holder = (Holder) convertView.getTag(); }*/ DiscoveryEntity entity = (DiscoveryEntity) getChild(groupPosition, childPosition); holder.txtName.setText(entity.mName); UrlImageViewHelper.setUrlDrawable(holder.imgLogo, entity.mLogo, R.drawable.bg_home_nologo); if (myRedPointList != null) { for (String redStr:myRedPointList) { if (redStr.contains(entity.mEn) && redStr.contains("discovery")) { holder.imgRedPoint.setVisibility(View.VISIBLE); break; } //holder.imgRedPoint.setVisibility(redStr.contains(entity.mEn)?View.VISIBLE:View.GONE); } }else { holder.imgRedPoint.setVisibility(View.GONE); } return convertView; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { if (convertView == null) convertView = mInfInflater .inflate(R.layout.item_group_bg, null); View groupitemView = convertView.findViewById(R.id.discory_group_view); if(groupPosition==0) { groupitemView.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.FILL_PARENT, 33)); } else { groupitemView.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.FILL_PARENT, 43)); } return convertView; } @Override public int getGroupCount() { if (mDiscoverList != null) return mDiscoverList.size(); return 0; } @Override public int getChildrenCount(int groupPosition) { if (mDiscoverList != null) return mDiscoverList.get(groupPosition).size(); return 0; } @Override public Object getGroup(int groupPosition) { if (mDiscoverList != null) return mDiscoverList.get(groupPosition); return null; } @Override public Object getChild(int groupPosition, int childPosition) { if (mDiscoverList != null) return mDiscoverList.get(groupPosition).get(childPosition); return null; } @Override public long getGroupId(int groupPosition) { // TODO Auto-generated method stub return 0; } @Override public long getChildId(int groupPosition, int childPosition) { // TODO Auto-generated method stub return 0; } @Override public boolean hasStableIds() { // TODO Auto-generated method stub return false; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { // TODO Auto-generated method stub return true; } }; }