Android入门第六篇之ListView (一)

本文来自http://blog.csdn.net/hellogv/

ListView是一个经经常使用到的控件,ListView里面的每一个子项Item能够使一个字符串,也能够是一个组合控件。先说说ListView的实现:

1.准备ListView要显示的数据

2.使用

一维或多维

动态数组

保存数据;

2.构建适配器

简单地来说,

适配器就是

Item数组


动态数组


有多少元素就生成多少个Item;

3.把

适配器

加入到ListView,并显示出来。

接下来,看看本文代码所实现的ListView:

接下来,就開始UI的XML代码:

main.xml代码例如以下,非常easy,也不须要多做解释了:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">

<ListView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/MyListView">
</ListView>
</LinearLayout>

my_listitem.xml的代码例如以下,my_listitem.xml用于设计ListView的Item:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="wrap_content"
android:id="@+id/MyListItem"
android:paddingBottom="3dip"
android:paddingLeft="10dip">
<TextView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/ItemTitle"
android:textSize="30dip">
</TextView>
<TextView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/ItemText">
</TextView>
</LinearLayout>

解释一下,里面用到的一些属性:

1.paddingBottom="3dip",Layout往底部留出3个像素的空白区域

2.paddingLeft="10dip",Layout往左边留出10个像素的空白区域

3.textSize="30dip",TextView的字体为30个像素那么大。

最后就是JAVA的源码:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//绑定XML中的ListView,作为Item的容器
ListView list = (ListView) findViewById(R.id.MyListView);

//生成动态数组,而且转载数据
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
for(int i=0;i<30;i++)
{
HashMap<String, String> map = new HashMap<String, String>();
map.put("ItemTitle", "This is Title.....");
map.put("ItemText", "This is text.....");
mylist.add(map);
}
//生成适配器,数组===》ListItem
SimpleAdapter mSchedule = new SimpleAdapter(this, //没什么解释
mylist,//数据来源
R.layout.my_listitem,//ListItem的XML实现

//动态数组与ListItem相应的子项
new String[] {"ItemTitle", "ItemText"},

//ListItem的XML文件中面的两个TextView ID
new int[] {R.id.ItemTitle,R.id.ItemText});
//加入而且显示
list.setAdapter(mSchedule);
}

时间: 2024-11-04 23:04:47

Android入门第六篇之ListView (一)的相关文章

Android JNI入门第六篇——C调用Java

本篇将介绍在JNI编程中C调用Java实现. 源码下载地址:http://download.csdn.net/detail/xyz_lmn/4868265 关键代码: java: [java] view plaincopyprint? public class CCallJava { public static String getTime() { Log.d("CCallJava",  "Call From C Java Static Method" +Strin

Android入门第八篇之GridView(九宫图)

GridView跟ListView都是比较常用的多控件布局,而GridView更是实现九宫图的首选!本文就是介绍如何使用GridView实现九宫图.GridView的用法很多,网上介绍最多的方法就是自己实现一个ImageAdapter继承BaseAdapter,再供GridView使用,类似这种的方法本文不再重复,本文介绍的GridView用法跟前文ListView的极其类似....也算是我偷懒一下,嘻嘻嘻嘻.... 先来贴出本文代码运行的结果: 本文需要添加/修改3个文件:main.xml.n

Java入门第六篇:I/O流

[java中的IO流] 分类: 1. 根据流的方向:输入流和输出流 根据读取文字的大小:字节流和字符流: 字节流按字节读取,读取中文时会产生乱码,字符流按字符读取,通常用于读取中文. 根据读取的方式:节点流和缓存流 [BufferedInputStream和....Output..] 新建一个对象,传入一个文件,这个对象作为缓存流.可以减少文件的读写次数,提高读写速度. 程序最后,刷新缓存流:bos.fluse(); 缓存区一定要关! bis.close(); bos.close();(会自动刷

Android零基础入门第44节:ListView数据动态更新

经过前面几期的学习,关于ListView的一些基本用法大概学的差不多了,但是你可能发现了,所有ListView里面要填充的数据都是静态的,但在实际开发中,这些数据往往都是动态变化的,比如数据内容发生改变.增加几行.或者删除几行,这就涉及到ListView数据的更新问题. 接下来通过一个简单的示例程序来学习ListView的数据更新. 继续使用WidgetSample工程,在app/main/res/layout/目录下创建updatedata_layout.xml文件,在其中填充如下代码片段:

JavaMail入门第五篇 解析邮件

上一篇JavaMail入门第四篇 接收邮件中,控制台打印出的内容,我们无法阅读,其实,让我们自己来解析一封复杂的邮件是很不容易的,邮件里面格式.规范复杂得很.不过,我们所用的浏览器内置了解析各种数据类型的数据处理模块,我们只需要在把数据流传输给浏览器之前明确地指定该数据流属于哪种数据类型即可,之后一切的解析操作由浏览器自动帮我们完成.下面这张图可以很好的说明解析邮件的步骤 1.调用Message对象的getFrom.getSubject等方法,可以得到邮件的发件人和主题等信息,调用getCont

JavaMail入门第四篇 接收邮件

上一篇JavaMail入门第三篇 发送邮件中,我们学会了如何用JavaMail API提供的Transport类发送邮件,同样,JavaMail API中也提供了一些专门的类来对邮件的接收进行相关的操作,再介绍这些类之前,我们先来了解下邮件接收API的体系结构,JavaMail API中定义了一个java.mail.Store类,它用于执行邮件的接收任务,我们在程序中调用这个类中的方法可以获取邮箱中的各个邮件夹的信息.JavaMail使用Folder对象表示邮件夹,通过Folder对象的方法可以

Android JNI入门第五篇——基本数据类型使用

前面讲到了java和native数据类型,这里就开始做一下使用: 第一步:新建工程 第二部:书写 java方法: [java] view plaincopyprint? public class NativeMethod { static { System.loadLibrary("com_nedu_jni_jnidemo5-jni"); } public native boolean getBoolean(boolean b); public native byte getByte(

JavaMail入门第三篇 发送邮件

JavaMail API中定义了一个java.mail.Transport类,它专门用于执行邮件发送任务,这个类的实例对象封装了某种邮件发送协议的底层实施细节,应用程序调用这个类中的方法就可以把Message对象中封装的邮件数据发送到指定的SMTP服务器.使用JavaMail发送邮件时设计到的主要API之间的工作关系如下所示: 1.从Session对象中获得实现了某种邮件发送协议的Transport对象: 2.使用Session对象创建Message对象,并调用Message对象的方法封装邮件数

CTF---Web入门第六题 因缺思汀的绕过

因缺思汀的绕过分值:20 来源: pcat 难度:中 参与人数:6479人 Get Flag:2002人 答题人数:2197人 解题通过率:91% 访问解题链接去访问题目,可以进行答题.根据web题一般解题思路去解答此题.看源码,请求,响应等.提交与题目要求一致的内容即可返回flag.然后提交正确的flag即可得分.web题主要考察SQL注入,XSS等相关知识.涉及方向较多.此题主要涉及源码审计,MySQL相关的知识. flag格式 CTF{} 解题链接: http://ctf5.shiyanb