学会使用listview的自定义baseadapter适配器
2016-03-06 12:05
316 查看
对于初学者来说,接触到listview的时候,通常使用适配器都是简单的ArrayAdapter适配器,最多就使用simpleAdapter 这两个适配器,但对于自定义Adapter的时候,我们通常都会自己写了一个类继承baseadapter,那么了解baseadapter
android.widget.BaseAdapter
BaseAdapter的四个方法:
我就放了一个textview,如果你想复杂点,可以再继续布局多几个控件
3,那么布局文件有了,还差一个适配器,现在新建一个类MyAdapter继承BaseAdapter
差在MainActivity.java文件呈现出自定义的listview了
android.widget.BaseAdapter
BaseAdapter的四个方法:
/* *显示视图 */ @Override public View getView(int position, View convertView, ViewGroup parent) { return null; } /* *获取第几个条数据的ID */ @Override public long getItemId(int position) { return 0; } /* *获取第几条数据 */ @Override public Object getItem(int position) { return null; } /* *获取数据 的数量 */ @Override public int getCount() { return 0; }
下面就列举一个listview使用baseadapter的例子1,先在activity_mian.xml写一个listview布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="TextView" /> </LinearLayout>
我就放了一个textview,如果你想复杂点,可以再继续布局多几个控件
3,那么布局文件有了,还差一个适配器,现在新建一个类MyAdapter继承BaseAdapter
public class MyAdapter extends BaseAdapter{ private List<String>mlist; //接受MainActivity传过来的数据 private Context mContext; private LayoutInflater mLayout; public MusicAdapter( List<String>list,Context context){ this.mList=list; this.mContext=context; this.mLayout=LayoutInflater.from(context); } @Override public int getCount() { return mList.size(); } @Override public Object getItem(int position) { return mList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder mViewHolder; if(convertView==null){ mViewHolder=new ViewHolder(); convertView=mLayout.inflate(R.layout.list_item, null); mViewHolder.text=(TextView) convertView.findViewById(R.id.textView1); convertView.setTag(mViewHolder); }else{ mViewHolder=(ViewHolder) convertView.getTag(); } mViewHolder.text.setText(mList.get(position)); return convertView; } class ViewHolder{ private TextView text; } }
差在MainActivity.java文件呈现出自定义的listview了
public class MainActivity extends Activity{ private ListView mListView; private List<String> mlist; private MyAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContextView(R.layout.activity_main); setListData(); initView(); } private void setListData(){ mList=new ArrayList<String>(); mList.add("星期一"); mList.add("星期二"); mList.add("星期三"); mList.add("星期四"); mList.add("星期五"); mList.add("星期六"); mList.add("星期日"); } private void initView() { mListView=(LIstView)findViewById(R,id.listview); mAdapter=new MyAdapter(mList,MainActivity.this); mListView.setAdapter(mAdapter); } }
相关文章推荐
- 有意思的分支预测
- codeforces2016
- bzoj4236 JOIJOI
- javascript编程习惯总结
- 六种方式实现hibernate查询
- 线性筛法求素数模板
- 云盘WEB资料下载链接
- 关于域名服务器获取流程问题
- java基础题目总结
- 详解HTML/XHTML中img图像标签的基本用法
- Android SDK在线更新镜像服务器大全
- cc2530-关于Contiki系统的时钟
- 教程--云vps续费
- 无法启动此程序,因为计算机中丢失MFC42D.DLL。尝试重新安装该程序以解决此问题
- HDU—— 2005 第几天? (java版)
- HDFS对象存储--Ozone架构设计
- (十九)中介者模式-代码实现
- 近200篇机器学习&深度学习资料分享【转载】
- bzoj 3551 [ONTAK2010]Peaks加强版(kruskal,主席树,dfs序)
- wordpress 3步历史图片加水印