读书人

Android适配器之ArrayAdapter、Simple

发布时间: 2012-09-14 11:53:44 作者: rapoo

Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法与有用代码片段

收藏ArrayAdapter、SimpleAdapter和BaseAdapter的一些简短代码片段,希望用时方便想起其用法。

1.ArrayAdapter


只可以简单的显示一行文本

代码片段:

private class MyListAdapter extends BaseAdapter{          private Context mContext;          private int[] colors=new int[]{0xff626569,0xff4f5257 };           public MyListAdapter(Context context){               mContext=context;           }          @Override          public int getCount() {              // TODO Auto-generated method stub              return mListText.length;          }            @Override          public Object getItem(int position) {              // TODO Auto-generated method stub              return position;          }            @Override          public long getItemId(int position) {              // TODO Auto-generated method stub              return position;          }            @Override          public View getView(int position, View convertView, ViewGroup parent) {              ImageView image=null;  //这些控件可以单独封装成一个类(Holder),便与优化            TextView title=null;              TextView  content=null;              if(convertView==null){                  convertView=LayoutInflater.from(mContext).inflate(R.layout.colorlist, null);                  image=(ImageView) convertView.findViewById(R.id.color_image);                  title=(TextView) convertView.findViewById(R.id.color_title);                  content=(TextView) convertView.findViewById(R.id.color_text);              }             int colorPos=position%colors.length;              convertView.setBackgroundColor(colors[colorPos]);              title.setText(mListTitle[position]);              content.setText(mListText[position]);              image.setImageResource(R.drawable.portrait);                            return convertView;          }                }  --------------------------下面样例列表页的控件单独封装成了一个类(Holder),便与优化----- public class MyBaseAdapter extends BaseAdapter{                private LayoutInflater mInflater;            public MyAdapter(Context context){               this.mInflater = LayoutInflater.from(context);          }            @Override           public int getCount() {                // TODO Auto-generated method stub                return mData.size();            }                 @Override            public Object getItem(int arg0) {                // TODO Auto-generated method stub                return null;           }                 @Override            public long getItemId(int arg0) {                // TODO Auto-generated method stub                return 0;            }                 @Override            public View getView(int position, View convertView, ViewGroup parent) {                                 ViewHolder holder = null;                if (convertView == null) {                    holder=new ViewHolder();                     convertView = mInflater.inflate(R.layout.vlist2, null);                    holder.img = (ImageView)convertView.findViewById(R.id.img);                    holder.title = (TextView)convertView.findViewById(R.id.title);                    holder.info = (TextView)convertView.findViewById(R.id.info);                    holder.viewBtn = (Button)convertView.findViewById(R.id.view_btn);                    convertView.setTag(holder);                                     }else {                                         holder = (ViewHolder)convertView.getTag();                }                holder.img.setBackgroundResource((Integer)mData.get(position).get("img"));                holder.title.setText((String)mData.get(position).get("title"));                holder.info.setText((String)mData.get(position).get("info"));//给每一个列表后面的按钮添加响应事件                holder.viewBtn.setOnClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View v) {                        showInfo();                                    }                });                return convertView;            }------------    public final class ViewHolder{            public ImageView img;            public TextView title;            public TextView info;            public Button viewBtn;        }








1楼OnlyoWE昨天 14:34
对我这样的初学者挺有用的。

读书人网 >Android

热点推荐