ListView的使用(二)
来源:互联网 发布:131458淘宝信誉查询网 编辑:程序博客网 时间:2024/06/05 10:33
ListView的使用(二)
仅为个人学习以备忘,如有帮助,不胜荣幸!!!
说明
上篇博客简要说明了ListView的一般用法,此处为加深版,自定义ListView。在此处要用到BaseAdapter为列表赋值。
代码包含四个文件,两个java文件,两个xml文件。具体代码如下:
CustomActivity.java(主代码)
package com.wangy.ListEX;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.TextView;public class CustomActivity extends AppCompatActivity { private ListView lv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_custom); lv = (ListView)findViewById(R.id.lv); //用BaseAdapter填充数据 lv.setAdapter(adapter); } private BaseAdapter adapter = new BaseAdapter() { //要填充的数据 private DataActivity[] data = new DataActivity[]{ new DataActivity("img1","dec img1",R.drawable.img1), new DataActivity("img2","dec img2",R.drawable.img2), new DataActivity("img3","dec img3",R.drawable.img3), }; @Override //列表项数量 public int getCount() { return data.length; } @Override //传递一个位置 public DataActivity getItem(int i) { return data[i]; } @Override //获得一个位置的id public long getItemId(int i) { return i; } @Override //每显示一项,程序就要创建一个item,为了节省系统内存,要使用view参数;参数view是指从回收池中回收已显示过的数据 public View getView(int i, View view, ViewGroup viewGroup) { /*应用示例 //这样写会增大系统内存 //TextView tv = new TextView(CustomActivity.this); //这样写会提高代码效率 TextView tv = null; if(view!=null){ tv = (TextView)view; }else{ tv = new TextView(CustomActivity.this); } tv.setTextSize(25); tv.setText(getItem(i)); return tv */ LinearLayout ll=null; if(view!=null){ ll = (LinearLayout) view; }else{ ll = (LinearLayout) LayoutInflater.from(CustomActivity.this).inflate(R.layout.listcell,null); } DataActivity data = getItem(i); //对象重新赋值 ImageView icon = (ImageView) ll.findViewById(R.id.icon); TextView name = (TextView)ll.findViewById(R.id.name); TextView dec = (TextView)ll.findViewById(R.id.dec); icon.setImageResource(data.iconId); name.setText(data.name); dec.setText(data.dec); return ll; } };}
DataActivity.java(创建数据格式)
package com.wangy.ListEX;public class DataActivity { public DataActivity(String name,String dec,int iconId){ this.name = name; this.dec = dec; this.iconId = iconId; } public String name = ""; public String dec = ""; public int iconId = 0;}
activity_custom.xml(主界面)
<?xml version="1.0" encoding="utf-8"?><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" tools:context="com.wangy.rwinsd.CustomActivity"> <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent"> </ListView></LinearLayout>
listcell.xml(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="wrap_content" android:orientation="horizontal"> <ImageView android:layout_width="120dp" android:layout_height="120dp" android:id="@+id/icon"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_weight="1"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/name" android:textAppearance="?android:attr/textAppearanceLarge"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/dec" /> </LinearLayout></LinearLayout>
最终运行效果
说明:
在CustomActivity.java(主代码)中也可以使用public class CustomActivity extends ListActivity {。。。}这样可以使用系统自动建立的布局文件,而不用再自己创建主部局。当使用了ListActivity之后,若还想自定义布局,那么在布局中必须包含一个ListView,而且其id必须为“@android:id/list"
0 0
- ListView的使用(二)
- ListView的使用(二)
- android ListView的使用 (二)
- 组件的使用(二)ListView的使用
- android 常用控件listview的使用(二)
- Android ListView/GridView 中Adapter的使用(二)
- Android中ListView的使用(二)----- 定制ListView的界面
- Android学习—ListView的使用(二)
- ListView使用技巧(二):相关设置
- listview控件使用实例(二)
- Android中的ListView使用(二)
- Android控件 – ListView的使用(二)– addHeaderView、addFooterView的使用与滑动优化
- 复用历史缓存View对象解决ListView的OOM异常,使用句柄提高ListView显示效率(二)
- ListView的相关研究(二)
- ListView的优化(二步骤)
- ListView的滑动监听(二)
- Android-ListView的学习(二)
- android TraceView使用以及listview 的性能优化测试(二)
- 用flask开发个人博客(10)—— Jinja2模板中的控制结构
- Inequalities - Holder's inequality
- 出现( linker command failed with exit code 1)错误总结
- Android之自定义阴影效果
- C# using
- ListView的使用(二)
- 项目管理一般知识
- 2.4节练习
- Codeforces-336A-Vasily the Bear and Triangle
- 栈函数及栈与链表的转换
- Android 之 BroadcastReceiver自定义广播
- callback in js
- 找出一个字符串中重复最多的字符以及出现的次数
- SpringMVC批量插入,js点击按钮自动增加一行