package com.yeetou.xinyongkaguanjia.adapter; import java.util.Calendar; import java.util.HashMap; import java.util.List; import java.util.Map; import com.yeetou.xinyongkaguanjia.R; import com.yeetou.xinyongkaguanjia.info.StreamDayInfo; import com.yeetou.xinyongkaguanjia.info.StreamInfo; import com.yeetou.xinyongkaguanjia.info.StreamMonthInfo; import com.yeetou.xinyongkaguanjia.util.NumberFormateUtil; import com.yeetou.xinyongkaguanjia.util.StringUtil; import com.yeetou.xinyongkaguanjia.util.ViewSetUtil; import android.content.Context; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.AbsListView; import android.widget.BaseExpandableListAdapter; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; /** * @author Administrator * @date &{date} */ public class ExpandableAdapter_BActivity extends BaseExpandableListAdapter{ private Context context; private List<StreamMonthInfo> streamMonthInfos; private Map<String, Integer> category_img; public ExpandableAdapter_BActivity(Context context, List<StreamMonthInfo> streamMonthInfos){ this.context = context; this.streamMonthInfos = streamMonthInfos; category_img = new HashMap<String, Integer>(); category_img.put("吃喝", R.drawable.food); category_img.put("购物", R.drawable.shoping); category_img.put("网购", R.drawable.ol_shoping); category_img.put("出行", R.drawable.travel); category_img.put("生活", R.drawable.life); category_img.put("玩乐", R.drawable.game); category_img.put("爱车", R.drawable.car); } public void setDatas(List<StreamMonthInfo> streamMonthInfos){ this.streamMonthInfos = streamMonthInfos; } //int[] logos = new int[] { R.drawable.wei, R.drawable.shu,R.drawable.wu}; //设置组视图的显示文字 //private String[] generalsTypes = new String[] { "2012年", "2011年", "2009年" }; //子视图显示文字 /* private String[][] generals = new String[][] { { "6日", "7日"}, { "1日", "2日", "3日", "4日", "5日"}, { "1日", "2日", "3日", "4日", "5日"} };*/ //二级子视图显示文字 /* private String[][] generals2 = new String[][] { { "超市", "吃饭"}, { "超市", "吃饭","超市", "吃饭"}, { "超市", "吃饭","逛街"} };*/ @Override public Object getChild(int groupPosition, int childPosition) { // TODO Auto-generated method stub // return generals[groupPosition][childPosition]; return streamMonthInfos.get(groupPosition).getStreamdays().get(childPosition).getDay(); } @Override public long getChildId(int groupPosition, int childPosition) { // TODO Auto-generated method stub return childPosition; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { // parent.setBackgroundResource(R.drawable.expend_you_yinying); View view = View.inflate(context, R.layout.activity_b_item, null); TextView b_item_day = (TextView)view.findViewById(R.id.b_item_day); TextView b_item_weekday = (TextView)view.findViewById(R.id.b_item_weekday); int year = streamMonthInfos.get(groupPosition).getStreamdays().get(childPosition).getYear(); int month = streamMonthInfos.get(groupPosition).getStreamdays().get(childPosition).getMonth(); int day = streamMonthInfos.get(groupPosition).getStreamdays().get(childPosition).getDay(); b_item_weekday.setText(getWeekDay(year,month-1,day)); String str =""; if(day>9){ str = day+"日"; }else{ str = "0"+day+"日"; } b_item_day.setText(str); LinearLayout b_item_layout = (LinearLayout)view.findViewById(R.id.b_item_layout); int size = streamMonthInfos.get(groupPosition).getStreamdays().get(childPosition).getStreams().size(); for(int i=0; i<size; i++){ StreamInfo si = streamMonthInfos.get(groupPosition).getStreamdays().get(childPosition).getStreams().get(i); View view_item = View.inflate(context, R.layout.activity_b_item_item, null); TextView textView = (TextView)view_item.findViewById(R.id.b_item_item_name); textView.setBackgroundResource(category_img.get(si.getCategory())); TextView b_item_item_content = (TextView)view_item.findViewById(R.id.b_item_item_content); TextView b_item_item_money = (TextView)view_item.findViewById(R.id.b_item_item_money); TextView bank_card_bankname = (TextView)view_item.findViewById(R.id.bank_card_bankname); ImageView bank_card_logo = (ImageView)view_item.findViewById(R.id.bank_card_logo); b_item_item_content.setText(si.getDes()); b_item_item_money.setText(NumberFormateUtil.Fromate2ex(si.getAmount())); bank_card_bankname.setText(si.getBank()+"("+si.getCard_num()+")"); bank_card_logo.setImageBitmap(StringUtil.getBitmapFromAssert(context, si.getBank_logo())); if(i+1==size){ view_item.findViewById(R.id.b_item_item_divide_layout).setVisibility(View.GONE); } b_item_layout.addView(view_item); } ImageView b_item_left = (ImageView) view.findViewById(R.id.b_item_left); b_item_left.setLayoutParams(new RelativeLayout.LayoutParams(ViewSetUtil.dip2px(context, 73.68f), ViewSetUtil.dip2px(context, size*112))); return view; } @Override public int getChildrenCount(int groupPosition) { // TODO Auto-generated method stub //return generals[groupPosition].length; if(streamMonthInfos!=null){ return streamMonthInfos.get(groupPosition).getStreamdays().size(); }else{ return 0; } } @Override public Object getGroup(int groupPosition) { // TODO Auto-generated method stub //return generalsTypes[groupPosition]; return streamMonthInfos.get(groupPosition); } @Override public int getGroupCount() { // TODO Auto-generated method stub //return generalsTypes.length; if(streamMonthInfos != null){ return streamMonthInfos.size(); }else{ return 0; } } @Override public long getGroupId(int groupPosition) { // TODO Auto-generated method stub return groupPosition; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { // TODO Auto-generated method stub LinearLayout ll = new LinearLayout(context); // ll.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 30)); ll.setGravity(Gravity.CENTER); ll.setBackgroundResource(R.color.low_gray); ll.setLayoutParams(new AbsListView.LayoutParams(LayoutParams.WRAP_CONTENT,ViewSetUtil.dip2px(context, 35))); TextView textView = new TextView(context); LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,ViewSetUtil.dip2px(context, 35)); lp1.setMargins(ViewSetUtil.dip2px(context, 55), 0, 0, 0); textView.setLayoutParams(lp1); textView.setGravity(Gravity.CENTER); textView.setTextSize(14); textView.setText(streamMonthInfos.get(groupPosition).getYear()+"-"+streamMonthInfos.get(groupPosition).getMonth()); textView.setTextColor(context.getResources().getColor(R.color.title_blue)); ll.addView(textView); float sum = 0; List<StreamDayInfo> days = streamMonthInfos.get(groupPosition).getStreamdays(); for(StreamDayInfo day:days){ for(StreamInfo si:day.getStreams()){ sum += si.getAmount(); } } textView = new TextView(context); LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,ViewSetUtil.dip2px(context, 35)); lp2.setMargins(ViewSetUtil.dip2px(context, 40), 0, 0, 0); textView.setLayoutParams(lp2); textView.setGravity(Gravity.CENTER); textView.setTextSize(14); textView.setText("总共消费:¥"+NumberFormateUtil.Fromate2(sum)); textView.setTextColor(context.getResources().getColor(R.color.title_blue)); ll.addView(textView); return ll; } @Override public boolean hasStableIds() { // TODO Auto-generated method stub return true; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { // TODO Auto-generated method stub return true; } public String getWeekDay(int year,int month,int day){ String[] wee = { "", "天", "一", "二","三", "四", "五", "六" }; Calendar cal = Calendar.getInstance(); cal.set(year, month, day);// 2002-03-28 星期四 return "星期" + wee[cal.get(Calendar.DAY_OF_WEEK)]; } }