[Android学习笔记]使用ListView
简单使用ListView
关键在于Adatper
Adatper用来连接UI与数据源。Adapter既负责提供数据,又负责创建Item视图。
一般步骤:
1.创建list_item.xml,用来创建ListView的Item的UI
2.自定义Adapter和数据源对象
3.在页面布局中定义ListView,在Activity中获取ListView引用
4.为ListView添加Adatper对象
Ex:
1.创建list_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="match_parent"
android:orientation="vertical" > <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/name"
android:paddingLeft="50px"
/> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/age"
android:text="a"
android:paddingLeft="50px"
/> <TextView
android:id="@+id/id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="50px" /> </LinearLayout>
list_item.xml
2.自定义Adatper
public class StudentAdapter extends BaseAdapter
{
/**
* 数据源
*/
private List<Student> students; /**
* inflater引用 ,用来加载item.xml,获得view引用
*/
private LayoutInflater inflater; /**
* item.xml资源
*/
private int source; public StudentAdapter(Context context,List<Student> students , int source){
this.students = students;
this.source = source; //inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater = LayoutInflater.from(context);
} @Override
public int getCount() {
// TODO Auto-generated method stub
return students.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return students.get(arg0);
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
} /* (non-Javadoc)
* @see android.widget.Adapter#getView(int, android.view.View, android.view.ViewGroup)
* 创建Item视图,关联数据源
*/
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub TextView idView = null;
TextView nameView = null;
TextView ageView = null; if(arg1 == null)
{
arg1 = this.inflater.inflate(source, null); idView = (TextView)arg1.findViewById(R.id.id);
nameView =(TextView)arg1.findViewById(R.id.name);
ageView = (TextView)arg1.findViewById(R.id.age);
}
else
{
idView = (TextView)arg1.findViewById(R.id.id);
nameView =(TextView)arg1.findViewById(R.id.name);
ageView = (TextView)arg1.findViewById(R.id.age);
} Student stu = students.get(arg0); idView.setText(stu.getId().toString());
nameView.setText(stu.getName());
ageView.setText(stu.getAge().toString()); return arg1;
} }
Adatper
3.在Activity中为ListView添加Adatper
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); listView = (ListView)findViewById(R.id.myListView);
ArrayList<Student> students = new ArrayList<Student>();
students.add(new Student("st",1,1));
StudentAdapter aa = new StudentAdapter(this,students,R.layout.list_item);
listView.setAdapter(aa);
}
Activity
[Android学习笔记]使用ListView的更多相关文章
- android学习笔记12——ListView、ListActivity
ListView.ListActivity ==> ListView以垂直列表的形式显示所有列表项. 创建ListView的方式: 1.直接使用ListView创建 2.Activity继承Li ...
- Android学习笔记之ListView复用机制
PS:满打满算,差不多三个月没写博客了...前一阵忙的不可开交...总算是可以抽出时间研究研究其他事情了... 学习内容: 1.ListView的复用机制 2.ViewHolder的概念 1.List ...
- Android学习笔记:ListView简单应用--显示文字列表
在activity中的编写如下代码: final List<String> items = new ArrayList<String>(); //设置要显示的数据,这里因为是例 ...
- 【转】 Pro Android学习笔记(十九):用户界面和控制(7):ListView
目录(?)[-] 点击List的item触发 添加其他控件以及获取item数据 ListView控件以垂直布局方式显示子view.系统的android.app.ListActivity已经实现了一个只 ...
- 【转】Pro Android学习笔记(二五):用户界面和控制(13):LinearLayout和TableLayout
目录(?)[-] 布局Layout 线性布局LinearLayout 表格布局TableLayout 布局Layout Layout是容器,用于对所包含的view进行布局.layout是view的子类 ...
- 【转】Pro Android学习笔记(二三):用户界面和控制(11):其他控件
目录(?)[-] Chronometer计时器控件 倒计时CountDownTimer Switch控件 Space控件 其他控件 Android提供了很多控件,基本上都是view的扩展. Chron ...
- 【转】 Pro Android学习笔记(二二):用户界面和控制(10):自定义Adapter
目录(?)[-] 设计Adapter的布局 代码部分 Activity的代码 MyAdapter的代码数据源和构造函数 MyAdapter的代码实现自定义的adapter MyAdapter的代码继续 ...
- 【转】 Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner
目录(?)[-] GridView Spinner GridView GridView是网格状布局,如图所示.在了解ListView后,很容易了解GridView.下面是例子的XML文件. <? ...
- 【转】Pro Android学习笔记(十二):了解Intent(下)
解析Intent,寻找匹配Activity 如果给出component名字(包名.类名)是explicit intent,否则是implicit intent.对于explicit intent,关键 ...
随机推荐
- PCI-X总线
PCI-X接口是并连的PCI总线(Peripheral Components Interconnect)的更新版本号,仍採用传统的总线技术,只是有很多其它数量的接线针脚, 同一时候,如前所述的全部的连 ...
- Spring mvc之提交表单
表单内容: <body> <form action="user/login"> <table> <tr> <td>用户名 ...
- 用lisp来让计算机学会写作
大部分的代码.思路参考了<Ansi Common Lisp>P138~P141. 问题:给一篇英文文本,如何让计算机依据此文本而生成随机但可读的文本.如: |Venture| The Na ...
- 【Demo 0006】Android 组件(Activity)
本章学习要点: 1. 了解Activity基本概念; 2. 掌握Activity生命周期: 3. 掌握 Activity之间跳转:
- python模块介绍- HTMLParser 简单的HTML和XHTML解析器
python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...
- Kendo UI开发教程(22): Kendo MVVM 数据绑定(十一) Value
Value绑定可以把ViewModel的某个属性绑定到DOM元素或某个UI组件的Value属性.当用户修改DOM元素或UI组件的值时,绑定的ViewModel的值也随之发生改名.同样,如果ViewMo ...
- Codeforces 484B Maximum Value(排序+二分)
题目链接: http://codeforces.com/problemset/problem/484/B 题意: 求a[i]%a[j] (a[i]>a[j])的余数的最大值 分析: 要求余数的最 ...
- Python 自动化测试报告HTMLTestRunner
HTMLTestRunner 是Python的一个测试报告 参考网址: http://tungwaiyip.info/software/HTMLTestRunner.html https://pypi ...
- 网页插入QQ 无需加好友
<p>联系方式:1073351325<a href="tencent://message/?Menu=yes&uin=1073351325&Site=dsf ...
- Mongdb 访问
http://114.55.75.xx/pics/201607040751367d21a38035bd4da7abd4473783f85f7a