文档章节

android 的listactivity

xiahuawuyu
 xiahuawuyu
发布于 2012/05/23 16:36
字数 691
阅读 123
收藏 0

本文转自:http://android.tgbus.com/ 


今天学习点轻松的内容吧,看看android.app包里的几个类。首先是这个在平台自的例子中被广泛使用的ListActivity。这个类其实就是一个含有一个ListView组件的Activity类。也就是说,如果我们直接在一个普通的Activity中自己加一个ListView也是完全可以取代这个ListActivity的,只是它更方便而已,方便到什么程度呢?来做个例子瞧瞧。 
public class HelloTwoB extends ListActivity 
...{   
    public void onCreate(Bundle icicle) ...{ 
        super.onCreate(icicle); 
        setTheme(android.R.style.Theme_Dark); 
        setContentView(R.layout.mainb); 
        
        List<String> items = fillArray();        
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.list_row,items); 
               
        this.setListAdapter(adapter); 
    } 
    private List<String> fillArray() 
    ...{ 
        List<String> items = new ArrayList<String>(); 
        items.add("日曜日"); 
        items.add("月曜日"); 
        items.add("火曜日"); 
        items.add("水曜日"); 
        items.add("木曜日"); 
        items.add("金曜日"); 
        items.add("土曜日"); 
        return items; 
    } 
   
    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) 
    ...{ 
        TextView txt = (TextView)this.findViewById(R.id.text); 
        txt.setText("あすは "+l.getSelectedItem().toString()+"です。"); 
    } 

的确可以简单到只需准备一个List对象并借助Adapter就可以构造出一个列表。重载onListItemClick方法可以响应选择事件,利用第一个参数可以访问到这个ListView实例以得到选中的条目信息。这里有一点要说明的,就是如果更简单的话,其实连那个setContentView都可以不要了,Android也会自动帮我们构造出一个全屏的列表。但是本例中我们需要一个TextView来显示选中的条目,所以我们需要一个layout.mainb描述一下这个列表窗口。 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<TextView id="@+id/text" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="" 
    /> 
<ListView id="@id/android:list" 
    android:layout_width="fill_parent" 
    android:layout_height="0dip" 
    android:layout_weight="1" 
    android:drawSelectorOnTop="false" 
    /> 
</LinearLayout> 
这里需要注意的是那个ListView的ID,是系统自定义的android:list,不是我们随便取的,否则系统会说找不到它想要的listview了。然后,在这个listview之外,我们又增加了一个TextView,用来显示选中的条目。 
再来说说这里用到的ArrayAdapter,它的构造函数中第二个参数是一个资源ID,ArrayAdapter的API文档中说是要求用一个包含 TextView的layout文件,平台用它来显示每个选择条目的样式,这里的取值是R.layout.list_row,所以,我们还有一个list_row.xml文件来描述这个布局,相当简单。 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<TextView id="@+id/item" 
          xmlns:android="http://schemas.android.com/apk/res/android" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content"/> 
<TextView id="@+id/item2" 
          xmlns:android="http://schemas.android.com/apk/res/android" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content"/> 
</LinearLayout> 
从ArrayAdapter上溯到BaseAdapter,发现还有几个同源的Adapter也应该可以使用,象SimpleAdapter和CursorAdapter,还是做个例子来实验一下吧。

© 著作权归作者所有

共有 人打赏支持
xiahuawuyu
粉丝 103
博文 647
码字总数 713018
作品 0
浦东
技术主管
私信 提问
为ListActivity 添加Button

参考: http://stackoverflow.com/questions/4740197/add-buttons-to-a-listactivity From http://developer.android.com/reference/android/app/ListActivity.html: “ListActivity has a ......

孙洪波
2018/06/26
0
0
Android基础教程(十)之-------ListView的应用

Step one:创建一个新的Android工程,命名为ListViewDemo. Step two:找到ListViewDemo.java,把我们习惯的继承Activity,改成ListActivity,如下: public class ListViewDemo extends ListActivit......

神勇小白鼠
2011/01/06
0
0
通过ListActivity使用ListView布局方法

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

鉴客
2011/11/01
3.8K
1
关于android的音乐播放器问题

怎么在listactivity中的音乐传递到另一个(2)activity。实现在 (2) activity中控制音乐的 刚学习android 非常感谢!!!

网网帝国
2012/03/27
283
0
Android Adapter详解

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

小近
2014/12/17
139
0

没有更多内容

加载失败,请刷新页面

加载更多

四、RabbitMQ3.7在CentOS7下的安装

安装依赖 sudo yum install -y gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git 创建yum源 vi /etc/yum.repos.d/rabbitmq-erlang.repo [......

XuePeng77
今天
2
0
android 延长Toast的时长

示例:myToast(5000,"hello"); public void myToast(int showTime, String msg) { Toast hello = Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT); new CountDownTimer(......

雨焰
昨天
4
0
浅谈mybatis的日志适配模式

Java开发中经常用到的日志框架有很多,Log4j、Log4j2、slf4j等等,Mybatis定义了一套统一的日志接口供上层使用,并为上述常用的日志框架提供了相应的适配器。有关适配器模式例子可以参考 设计...

算法之名
昨天
13
0
大数据教程(13.6)sqoop使用教程

上一章节,介绍了sqoop数据迁移工具安装以及简单导入实例的相关知识;本篇博客,博主将继续为小伙伴们分享sqoop的使用。 一、sqoop数据导入 (1)、导入关系表到HIVE ./sqoop import --connect...

em_aaron
昨天
3
0
Git cherry-pick 使用总结

应用背景:假设现在有两个分支:dev_01, dev_02. 如果我想把dev_01分支上的某几个commit合并到dev_02分支, 那么怎么办呢? 这就是cherry-pick的工作了。cherry-pick会捡选某些commit, 即把某...

天王盖地虎626
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部