Adapter&&GroupAdapter&&VerifyAdapter&&PicAdapter
来源:互联网 发布:淘宝美工在家可以接单 编辑:程序博客网 时间:2024/05/16 01:05
1、普通的Adapter :
package com.pcs.learn.Adapter;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import java.util.List;import java.util.Map;import com.pcs.learn.R;/** * Created by chaosi on 2015/8/11. */public class GroupAdapter extends BaseAdapter { private LayoutInflater mInflater; private List<Map<String, Object>> mAppList; public GroupAdapter(Context c, List<Map<String, Object>> appList) { mInflater=LayoutInflater.from(c); mAppList=appList; } @Override public int getCount() { return mAppList.size(); } @Override public Object getItem(int position) { return mAppList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if(convertView==null){ convertView = mInflater.inflate(R.layout.item_list_group, null); holder=new ViewHolder(); holder.tv_name=(TextView)convertView.findViewById(R.id.name); holder.tv_kind=(TextView)convertView.findViewById(R.id.tv_kind); holder.tv_intro=(TextView)convertView.findViewById(R.id.tv_intro); convertView.setTag(holder); }else{ holder=(ViewHolder)convertView.getTag(); } holder.tv_name.setText((String)mAppList.get(position).get("name")); holder.tv_kind.setText((String)mAppList.get(position).get("kind")); holder.tv_intro.setText("签名:"+mAppList.get(position).get("intro")); return convertView; } private class ViewHolder{ TextView tv_name; TextView tv_kind; TextView tv_intro; }}
2、GroupAdapter
package com.npd.learn.Adapter;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.RelativeLayout;import android.widget.TextView;import com.npd.learn.R;import com.npd.learn.Utils.Utils;import java.util.List;import java.util.Map;/** * Created by chaosi on 2015/8/11. */public class GroupAdapter extends BaseAdapter { private Context mContext; private LayoutInflater mInflater; private List<Map<String, Object>> mAppList; private ViewHolder holder; private MyOnItemClickListener listener; public GroupAdapter(Context c, List<Map<String, Object>> appList) { mContext=c; mInflater=LayoutInflater.from(c); mAppList=appList; } public void setMyOnItemClickListener(MyOnItemClickListener listener){ this.listener=listener; } @Override public int getCount() { return mAppList.size()+1; } @Override public Object getItem(int position) { if(position==0){ return null; }else{ return mAppList.get(position-1); } } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { final int mPosition=position; if(mPosition==0){ convertView = mInflater.inflate(R.layout.item_list_group_head, null); RelativeLayout layout=(RelativeLayout)convertView.findViewById(R.id.newGroup); TextView tv_text=(TextView)convertView.findViewById(R.id.groupText); layout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { listener.onItemClick(mPosition); } }); tv_text.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //什么也不做,故意使该监听事件与ListView的ItemListener冲突 } }); }else{ if(mPosition==1 || convertView==null || convertView.getTag()==null){ convertView = mInflater.inflate(R.layout.item_list_group, null); holder=new ViewHolder(); holder.tv_name=(TextView)convertView.findViewById(R.id.name); holder.tv_kind=(TextView)convertView.findViewById(R.id.tv_kind); holder.tv_intro=(TextView)convertView.findViewById(R.id.tv_intro); convertView.setTag(holder); }else{ holder=(ViewHolder)convertView.getTag(); } try{ holder.tv_name.setText((String)mAppList.get(mPosition-1).get("name")); holder.tv_kind.setText((String)mAppList.get(mPosition-1).get("kind")); holder.tv_intro.setText("签名:"+mAppList.get(mPosition-1).get("intro")); }catch(Exception e){ Utils.log(e.toString()); e.printStackTrace(); } } return convertView; } private class ViewHolder{ TextView tv_name; TextView tv_kind; TextView tv_intro; } public interface MyOnItemClickListener{ public void onItemClick(int position); }}
3、VerifyAdapter
package com.npd.learn.Adapter;import java.util.List;import java.util.Map;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Color;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.Checkable;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.SimpleAdapter;import android.widget.TextView;import android.widget.Toast;import com.npd.learn.R;import com.npd.learn.Utils.Utils;/** * Created by chaosi on 2015/7/17. */public class VerifyAdapter extends BaseAdapter { private class buttonViewHolder { ImageView image; TextView text; Button button; } private class bottomHolder{ TextView text; ProgressBar progressBar; } private LayoutInflater mInflater; private Context mContext; private List<Map<String, Object>> mAppList; private buttonViewHolder holder; private bottomHolder bHolder; private VerifyInterface verifyInterface; public VerifyAdapter(Context c, VerifyInterface mInterface, List<Map<String, Object>> appList) { mContext = c; verifyInterface = mInterface; mInflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); mAppList = appList; } // @Override public int getCount() { return mAppList.size()+1; } // @Override public Object getItem(int position) { return mAppList.get(position); } //@Override public long getItemId(int position) { return position; } // @Override public View getView(final int position, View convertView, ViewGroup parent) { int mSize=mAppList.size(); if(position==mSize){ convertView = mInflater.inflate(R.layout.item_list_verify_bottom, null); bHolder = new bottomHolder(); bHolder.text = (TextView)convertView.findViewById(R.id.tv_more); bHolder.progressBar = (ProgressBar)convertView.findViewById(R.id.loading); convertView.setTag(bHolder); bHolder.text.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { bHolder.text.setVisibility(View.GONE); bHolder.progressBar.setVisibility(View.VISIBLE); verifyInterface.loadMore(bHolder.text, bHolder.progressBar); } }); }else{ convertView = mInflater.inflate(R.layout.item_list_verify, null); holder = new buttonViewHolder(); holder.image = (ImageView)convertView.findViewById(R.id.image); holder.text = (TextView)convertView.findViewById(R.id.msg); holder.button = (Button)convertView.findViewById(R.id.agree); convertView.setTag(holder); Map<String, Object> appInfo = mAppList.get(position); if (appInfo != null) { String groupName = (String)appInfo.get("text"); boolean hasAgree=(boolean)appInfo.get("hasAgree"); holder.text.setText(groupName); if(hasAgree){ holder.button.setText("已同意"); holder.button.setTextColor(mContext.getResources().getColor(R.color.no)); holder.button.setBackground(mContext.getResources().getDrawable(R.drawable.group_search_button_shape)); }else{ holder.button.setText("同意"); holder.button.setTextColor(Color.WHITE); holder.button.setBackground(mContext.getResources().getDrawable(R.drawable.group_verify_button_shape)); } if(!hasAgree){ holder.button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { verifyInterface.agree(position); } }); } } } return convertView; } public interface VerifyInterface{ public void agree(int position); public void loadMore(TextView textView, ProgressBar progressBar); }}
4、PicAdapter(让SimpleAdapter匹配Bitmap)
package com.npd.learn.Adapter;import java.util.List;import java.util.Map;import android.content.Context;import android.graphics.Bitmap;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.Checkable;import android.widget.ImageView;import android.widget.SimpleAdapter;import android.widget.TextView;/** * Created by chaosi on 2015/7/17. */public class PicAdapter extends SimpleAdapter { private int[] mTo; private String[] mFrom; private ViewBinder mViewBinder; private List<? extends Map<String, ?>> mData; private int mResource; @SuppressWarnings("unused") private int mDropDownResource; private LayoutInflater mInflater; public PicAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) { super(context, data, resource, from, to); mData = data; mResource = mDropDownResource = resource; mFrom = from; mTo = to; mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } /** * @see android.widget.Adapter#getView(int, android.view.View, android.view.ViewGroup) */ public View getView(int position, View convertView, ViewGroup parent) { return createViewFromResource(position, convertView, parent, mResource); } private View createViewFromResource(int position, View convertView, ViewGroup parent, int resource) { View v; if (convertView == null) { v = mInflater.inflate(resource, parent, false); final int[] to = mTo; final int count = to.length; final View[] holder = new View[count]; for (int i = 0; i < count; i++) { holder[i] = v.findViewById(to[i]); } v.setTag(holder); } else { v = convertView; } bindView(position, v); return v; } @SuppressWarnings("rawtypes") private void bindView(int position, View view) { final Map dataSet = mData.get(position); if (dataSet == null) { return; } final ViewBinder binder = mViewBinder; final View[] holder = (View[]) view.getTag(); final String[] from = mFrom; final int[] to = mTo; final int count = to.length; for (int i = 0; i < count; i++) { final View v = holder[i]; if (v != null) { final Object data = dataSet.get(from[i]); String text = data == null ? "" : data.toString(); if (text == null) { text = ""; } boolean bound = false; if (binder != null) { bound = binder.setViewValue(v, data, text); } if (!bound) { if (v instanceof Checkable) { if (data instanceof Boolean) { ((Checkable) v).setChecked((Boolean) data); } else { throw new IllegalStateException(v.getClass().getName() + " should be bound to a Boolean, not a " + data.getClass()); } } else if (v instanceof TextView) { // Note: keep the instanceof TextView check at the bottom of these // ifs since a lot of views are TextViews (e.g. CheckBoxes). //setViewText((TextView) v, text); ((TextView) v).setText(text); } else if (v instanceof ImageView) { if (data instanceof Integer) { setViewImage((ImageView) v, (Integer) data); } else if(data instanceof Bitmap) { //添加data是Bitmap型的情况 ((ImageView) v).setImageBitmap((Bitmap)data); } }else { throw new IllegalStateException(v.getClass().getName() + " is not a " + " view that can be bounds by this SimpleAdapter"); } } } } } public void setViewImage(ImageView v, int value) { v.setImageResource(value); }}
0 0
- Adapter&&GroupAdapter&&VerifyAdapter&&PicAdapter
- Adapter
- adapter
- adapter
- adapter
- adapter
- Adapter
- Adapter
- adapter
- Adapter
- Adapter
- Adapter
- adapter
- adapter
- adapter
- Adapter
- Adapter
- adapter
- poj 3111 Status List (二分 + 贪心 最大化平均值)
- 【剑指Offer】矩形覆盖
- 面试中如何“投机取巧”
- java
- 无关技术,纯属吐槽。
- Adapter&&GroupAdapter&&VerifyAdapter&&PicAdapter
- Java9: REPL环境与编程
- android网络游戏开发——网络通信——IO处理
- storm-kafka数据流量问题
- Win10实现窗口AeroGlass化
- TCP协议流量控制与拥塞避免【转载】
- Windows配置openvpn客户端
- maven jetty myeclipse 进行debug
- IOS征途之三 分类与协议