android listview 用法
来源:互联网 发布:在绿城工作怎么样知乎 编辑:程序博客网 时间:2024/05/22 13:31
ListView
ListView是android常用组件,常用于显示一堆数据,类似web ui中的datatable。
ListView展示数据的步骤
- 定义item布局
- 定义数据源
- 将item布局和数据源放入适配器
- 将适配器与listview关联
最简单的listview
- item布局文件,这里我们使用android自带的布局文件,android.R.layout.simple_list_item_1
它里边只有一个textview
<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="match_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceListItemSmall" android:gravity="center_vertical" android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:minHeight="?android:attr/listPreferredItemHeightSmall"/>
- 定义数据源,将item布局和数据源放入适配器,将适配器与listview关联
activity代码
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main_layout); ListView lv = (ListView) findViewById(R.id.lv1); String[] fruits = {"apple","orange","beach","mango"}; ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, fruits); lv.setAdapter(adapter); }
- 最后,主界面的布局文件
<ListView android:id="@+id/lv1" android:layout_width="match_parent" android:layout_height="wrap_content" ></ListView>
效果图
自定义ListView
有时,我们需要自定义显示多列,列中有图片,说明之类的。自定义说到底就是改变item布局文件
item布局文件
<?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" > <ImageView android:id="@+id/myface" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/myname" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="10dp" /></LinearLayout>
适配器
public class FruitAdapter extends ArrayAdapter<Fruit> { private int resourceId; public FruitAdapter(Context context, int resource, List<Fruit> objects) { super(context, resource, objects); resourceId = resource; }@Override public View getView(int position, View convertView, ViewGroup parent) { Fruit fruit = getItem(position); View view = LayoutInflater.from(getContext()).inflate(resourceId, null); ImageView imageView= (ImageView) view.findViewById(R.id.myface); TextView textView = (TextView) view.findViewById(R.id.myname); imageView.setImageResource(fruit.getImageId()); textView .setText(fruit.getName()); return view; }}
public class Fruit { private String name; private int imageId;}
getView方法介绍
getView: item滚入到屏幕中时,被调用
第一个参数:position,item在数据源中的位置
第二个参数:convertView,这个参数要重点理解,convertView是滚出屏幕的那个item的布局,在优化ListView时,常常会用这个变量。这样在滚入item时,使用滚出item的布局,然后把值覆盖掉。
优化后的代码
优点:不用每次都加载布局文件
@Override public View getView(int position, View convertView, ViewGroup parent) { Fruit fruit = getItem(position); View view; if (convertView == null) { view = LayoutInflater.from(getContext()).inflate(resourceId, null); } else { view = convertView; } ImageView imageView = (ImageView) view.findViewById(R.id.myface); imageView.setImageResource(fruit.getImageId()); TextView textView = (TextView) view.findViewById(R.id.myname); textView.setText(fruit.getName()); return view; }
效果
0 0
- Android ListView常用用法
- android listView一般用法
- 转载 android listView 用法
- Android ListView常用用法
- Android ListView常用用法
- Android ListView常用用法
- Android ListView常用用法
- android listview高级用法
- Android ListView常用用法
- android ListView用法
- Android ListView 常用用法
- Android ListView常用用法
- Android ListView常用用法
- Android ListView常用用法
- Android ListView常用用法
- android ListView用法
- Android ListView常用用法
- Android ListView常用用法
- WIN7系统电脑关机后自动重启解决方法
- PHP输出当前进程所有变量 / 常量 / 模块 / 函数 / 类
- Scikit-learn介绍几种常用的特征选择方法
- JVM堆内存设置原理
- MacBook pro iterm2 配色
- android listview 用法
- acm之贪心算法题目5
- windows上PHP中Apache+MySQL+PHP环境的搭建
- hadoop之Hbase简介
- 解决SourceInsight不能解析标准C函数问题
- Activiti部署的方式
- 复习(数据结构):线性表 : C:动态分配内存
- android include使用
- hibernate——onetoone (单向)