文档章节

Android 第十三课——ListView ListActivity SimpleAdapter

learn_more
 learn_more
发布于 2015/01/12 12:57
字数 550
阅读 154
收藏 1

Android UI 图:

8 ListView ListActivity SimpleAdapter  ArrayAdapter

列表视图是一种可以用来显示长的项列表的视图。在 Android 中,有两种列表视图: ListView 和 SpinnerView,两者都用于显示长的项列表。ListView 在一个垂直滚动列表中显示项列表。

1)使用继承android.app.ListActivity+ArrayAdapter方式

 strings.xml

   <string-array name="array_listitem">
       <item>list_item_0</item>
       <item>list_item_1</item>
       <item>list_item_2</item>
       <item>list_item_3</item>
       <item>list_item_4</item>
   </string-array>

ListViewActivity.java

public class ListViewActivity2 extends ListActivity{
 // 在strings.xml文件中创建<string-array name="array_listitem">
 private String[] listItems;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  //this.setContentView(R.layout.activity_listview);不需要使用layout
  // 获取数据源
  listItems = this.getResources().getStringArray(R.array.array_listitem);
 
  // 获取ListView
  ListView listView = this.getListView();
  // 设置ListView为多选模式
  listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
 
  // ListView 设置适配器,适配器中需要数据源
  this.setListAdapter(new ArrayAdapter<String>(this,
    android.R.layout.simple_list_item_checked, listItems));
 }
 @Override
 protected void onListItemClick(ListView listView, View v, int position, long id) {
  // ListItem被点击时事件触发
  Toast.makeText(this,listItems[position], Toast.LENGTH_SHORT).show();
 }
}

2)使用xml+SimpleAdapter 方式

layout.xml

    <ListView
         android:id="@+id/list_comp"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"/>

listview.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
 android:id="@+id/RelativeLayout01"
 android:layout_width="fill_parent"
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_height="wrap_content">
<TextView
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:textSize="20sp"
    android:id="@+id/title"
    />
<TextView
 android:layout_height="wrap_content"
 android:layout_width="match_parent"
 android:textSize="10sp"
 android:layout_below="@+id/title"
 android:id="@+id/content"
 />
</RelativeLayout>

ListViewActivity

public class ListViewActivity extends Activity{
 // 数据源
 private ArrayList<HashMap<String, Object>> listItem;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  // 设置布局文件
  this.setContentView(R.layout.activity_listview);
  // 获取布局文件中设置的ListView
  ListView listView = (ListView)findViewById(R.id.list_comp);
  // 设置多选模式
  listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
  // 创建数据源
  listItem = new ArrayList<HashMap<String, Object>>();
        for(int i=0;i<10;i++)
        {
            HashMap<String, Object> map = new HashMap<String, Object>();
            map.put("title", "title_"+i);
            map.put("content", "content_"+i);
            listItem.add(map);
        }
        // 创建适配器,第二个参数是数据源, 第三个参数是xml模板、第四个与第5个参数是数据源与xml对应项配置
        SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,
            R.layout.listview,new String[] {"title","content"},
            new int[] {R.id.title,R.id.content}
        );
        // 设置适配器
        listView.setAdapter(listItemAdapter);
        // 注册点击事件
        listView.setOnItemClickListener(new ItemClickImpl());
 }
 
 class ItemClickImpl implements OnItemClickListener{
  @Override
  public void onItemClick(AdapterView<?> adapter, View arg1, int arg2,
    long arg3) {
   // ListItem 被点击时事件被触发
   Toast.makeText(ListViewActivity.this, listItem.get(arg2).get("title").toString()+listItem.get(arg2).get("content"), Toast.LENGTH_SHORT).show();
  }
 
 }
 
}


© 著作权归作者所有

learn_more
粉丝 93
博文 240
码字总数 210196
作品 0
深圳
程序员
私信 提问
通过ListActivity使用ListView布局方法

先简单的介绍一下ListActivity ListActivity是一个专门显示ListView的Activity类,它内置了ListView对象,只要我们设置了数据源,就会自动地显示出来。ListActivity和普通的Activity没有太大...

鉴客
2011/11/01
3.9K
1
Android Adapter详解

Android Adapter Adapter是用来帮助填充数据的中间桥梁,比如通过它将数据填充到ListView, GridView, Gallery.而android 提供了几种Adapter:ArrayAdapter, BaseAdapter, CursorAdapter, Hea...

小近
2014/12/17
151
0
android listview组件 ArrayAdapter,SimpleAdapter

ListView 是android开发中最常用的组件之一,它通过一个adapter来构建显示通常有三种adapter可以使用ArrayAdapter ,SimpleAdapter,CursorAdapter。 CursorAdapter主要正对数据库使用,下面...

cb3600
2012/04/30
1K
0
Android 第十一课——UI Checkbox

常用基础空组件 6 CheckBox 复选框是常用组件之一,但是开发过程中虽然很多地方会用到复选框,但是却不会用Android系统提供的原始样式,类似我们在写html时,不同的浏览器提供的复选框按钮是...

learn_more
2015/01/07
122
1
ListView与Adapter。。

在开发的过程中,发现ListView这个组件用得非常多,而ListView的使用过程中,又往往与Adapter结下了不结之缘。 ListView是什么呢?Adapter又是什么呢? ListView是Android手机系统中广泛使用...

Clownflsh
2012/04/20
2.8K
3

没有更多内容

加载失败,请刷新页面

加载更多

Redis集群搭建

服务器资源 ip 账号 配置 操作系统 xxx.70 root/xxx 磁盘50G(/)+150G(/home)、内存16G、CPU 16core CentOS Linux release 7.2.1511 (Core) xxx.74 root/xxx 磁盘50G(/)+150G(/home)、......

jxlgzwh
16分钟前
2
0
avro

一、 ```我们已经接触过很多序列化框架(或者集成系统),比如protobuf、hessian、thrift等,它们各有优缺点以及各自的实用场景,Avro也是一个序列化框架,它的设计思想、编程模式都和thi...

hexiaoming123
17分钟前
3
0
QML TextInput的字体超出控件范围

本文链接:https://blog.csdn.net/chyuanrufeng/article/details/54691998 问题描述 :QML TextInput输入内容超过TextInput的大小 当输入过多的字符串时,会出现内容超过TextInput的大小,字...

shzwork
19分钟前
2
0
《Java 8 in Action》Chapter 10:用Optional取代null

1965年,英国一位名为Tony Hoare的计算机科学家在设计ALGOL W语言时提出了null引用的想法。ALGOL W是第一批在堆上分配记录的类型语言之一。Hoare选择null引用这种方式,“只是因为这种方法实...

HelloDeveloper
20分钟前
1
0
进击的 Java ,云原生时代的蜕变

作者| 易立 阿里云资深技术专家<br /> <br />导读:云原生时代的来临,与Java 开发者到底有什么联系?有人说,云原生压根不是为了 Java 存在的。然而,本文的作者却认为云原生时代,Java 依然...

阿里巴巴云原生
22分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部