ListView应用Demo使用自定义的适配器继承BaseAdapter
来源:互联网 发布:记忆训练软件 编辑:程序博客网 时间:2024/05/16 07:00
使用ListView大部分都会使用自定义的适配器来达到显示更多种多样的内容,所以下面的例子就简单的使用了自定义的适配器。
1.XML文件代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <ListView android:id="@+id/ListViewID" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView></LinearLayout>
2.ListView的item子布局XML文件代码:
<?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="wrap_content" android:orientation="horizontal" > <ImageView android:id="@+id/imageviewID" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/textviewID" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="内容" android:textSize="24sp" /></LinearLayout>3.自定义的适配器文件MyAdapter.java文件的代码如下:
public class MyAdapter extends BaseAdapter {//通过构造方法也可以传过来一个List<E> list集合,E类型为自定义的一个封装数据的实体类LayoutInflater inflater;/**带参的构造方法*/public MyAdapter(Context context) {this.inflater=LayoutInflater.from(context);}/**该方法的返回值控制该Adapter包含多少个列表项(item)*/@Overridepublic int getCount() {//如果传过来集合,此处为list.sizereturn 30;}/**该方法的返回值决定第position处的列表项(item)的内容*/@Overridepublic Object getItem(int position) {//如果传过来集合,此处为list.get(position);return null;}/**该方法的返回值决定第position处的列表项(item)的ID*/@Overridepublic long getItemId(int position) {return position;}/**该方法的返回值决定第position处的列表项(item)组件*/@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder=null;if (convertView==null) {holder=new ViewHolder();convertView=inflater.inflate(R.layout.listview_item, null);holder.imageView=(ImageView) convertView.findViewById(R.id.imageviewID);holder.textView=(TextView) convertView.findViewById(R.id.textviewID);convertView.setTag(holder);}else {holder=(ViewHolder) convertView.getTag();}//通过list.get(position);获得封装数据的实体类的实例,然后再获取里面的数据设置到相应的控件上//设置TextView的内容holder.textView.setText("第"+position+"个item");//设置ImageView的图片holder.imageView.setImageResource(R.drawable.nantou);return convertView;}/**优化ListView所定义的重用类*/class ViewHolder{//item布局文件上面有一个ImageView和一个TextView,所以我们这里需要定义2个ViewImageView imageView;TextView textView;}}
说明:上面的方法中第1个和第4个很重要。
4.MainActivity.java文件代码如下:public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ListView listView=(ListView) findViewById(R.id.ListViewID);MyAdapter adapter=new MyAdapter(this);listView.setAdapter(adapter);}}5.最终运行效果:
0 0
- ListView应用Demo使用自定义的适配器继承BaseAdapter
- 自定义ListView适配器继承BaseAdapter
- 学会使用listview的自定义baseadapter适配器
- ListView的优化和自定义适配器继承于BaseAdapter
- 自定义ListView ,适配器(BaseAdapter)
- BaseAdapter自定义适配器及ListView的优化
- 自定义适配器的实现继承BaseAdapter
- android listview继承BaseAdapter,自定义的适配器,getView方法执行多组循环解决方式
- ListView的适配器BaseAdapter使用详解
- BaseAdapter 自定义适配器的使用以及优化
- android-继承BaseAdapter--自定义适配器,getView执行多次的解决方法
- android-继承BaseAdapter自定义适配器,getView执行多次的解决方法
- android listview的适配器------baseadapter
- ListView的优化 +BaseAdapter适配器
- 继承自BaseAdapter的适配器
- 使用BaseAdapter自定义构建复杂的ListView
- listview的使用及自定义baseAdapter
- Android学习ListView自定义布局,适配器BaseAdapter
- 5月份学习计划
- XML
- php中的final与staic
- 二叉树层次遍历——编程之美
- 6月份学习计划
- ListView应用Demo使用自定义的适配器继承BaseAdapter
- 257. Binary Tree Paths [easy] (Python)
- Yii 2.0 Widget的编写
- 《梦溪笔谈》三则--古代的逻辑思辨
- SystemUI下拉通知栏的源码分析,屏蔽通知栏,监听通知栏下拉动作
- 安卓侧边栏实现
- duilib + cef简单浏览器的demo
- centos6.x直接yum安装nginx1.10.x
- 欢迎使用CSDN-markdown编辑器