最近玩android,无意中发现了一个东西ListView。由于以前学的是Java EE开发,很多是基于Web,每当要显示一串从数据库获取的信息时,都会想到用表格来展示。而在android上怎样展示我们的信息呢?这是我找到了ListView
下面用一些例子解析ListView;
直接用ListView显示我们需要显示的东西:
资源配置文件list.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<TextView android:id="@+id/text01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="10px" />
<TextView android:id="@+id/text02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="10px" />
</LinearLayout>
Activity类:这里需要继承ListActivity,而不是Activity。
package com.example.sqlite;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class ListAcvtivityTest extends ListActivity {
ListView listView ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
List<Map<String, String>> list = new ArrayList<Map<String,String>>() ;
String name[] = {"金" ,"木" ,"水" ,"火" ,"土"} ;
String num[] = {"甲","乙","丙","丁","戊"} ;
int to[] = {R.id.text01,R.id.text02} ; //下面的from
String from[] = {"name" , "num"} ; //下面的to
for (int i = 0; i < num.length; i++) {
Map<String, String> map = new HashMap<String, String>() ;
map.put("name", name[i]) ;
map.put("num", num[i]) ;
list.add(map) ;
}
/*
public SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)
context 表示当前运行的程序
data 列表的每一行所含有的数据
resource 程序布局的ID
from 需要添加到列表的元素
to 元素将要添加到的地方,与上面的from一一对应
*/
SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(), list, R.layout.list, from, to) ; //SimpleAdapter有五个参数
listView = getListView() ;
listView.setAdapter(adapter) ;
}
}
运行结果:
只要把上面的数据换成是从数据库里面取出来的,就可以达到展示数据库信息的作用了。