android适配器之基于BaseAdapt自定义简单适配器
16lz
2022-07-24
代码样例:
一 布局文件
二 自定义ListView布局文件
<?xml version="1.0" encoding="utf-8"?>
三 自定义适配器
package com.example.listview;import java.util.List;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;public class MyAdapt extends BaseAdapter {private Context context;private List list;int count = 0;public MyAdapt(Context context,List list){this.context = context;this.list = list;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn list.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn list.get(position);}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {View view = View.inflate(context, R.layout.mylayout, null);TextView textView = (TextView) view.findViewById(R.id.tv);textView.setText(list.get(position)+"");return view;}}
四 MainActivity package com.example.listview;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.widget.ListView;public class MainActivity extends Activity {private ListView listView;private List list;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView = (ListView)findViewById(R.id.lv);list = new ArrayList<>();for (int i = 0; i < 100; i++) {list.add(i);}listView.setAdapter(new MyAdapt(this, list));}}
这种方式在数据量大的时候ListView的效率极低,显示每行数据都要重复执行一遍MyAdapt中的getView方法,其中除了要传递的数据不一样,样式等其他的都一样,所以这样效率非常低下。但是这种方法对于初学者来说比较好理解。到后面也要对这个ListView进行优化。
更多相关文章
- mybatisplus的坑 insert标签insert into select无参数问题的解决
- python起点网月票榜字体反爬案例
- NPM 和webpack 的基础使用
- 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
- 读取android手机流量信息
- android 使用html5作布局文件: webview跟javascript交互
- 《Android开发从零开始》——25.数据存储(4)
- Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner Proces
- Android系统配置数据库注释(settings.db)