2019独角兽企业重金招聘Python工程师标准>>>

本文转自: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,还是做个例子来实验一下吧。

转载于:https://my.oschina.net/xiahuawuyu/blog/59201

android 的listactivity相关推荐

  1. Android中list常用方法,Android中ListActivity用法实例分析

    本文实例分析了Android中ListActivity用法.分享给大家供大家参考,具体如下: 程序如下: import android.app.ListActivity; import android ...

  2. Android之ListActivity(一):布局与数据绑定

    Android中的列表,当然也可以用ListView来完成所需要的功能,用法是一样的. 废话不说,来关键的. LiveActivity本身继承了关于List操作的众多接口,我们可以方便的重写这些操作中 ...

  3. Android 快速选择联系人

    Activity 代码如下: /** Copyright (C) 2009 The Android Open Source Project** Licensed under the Apache Li ...

  4. android中的数据库操作(SQLite)

    android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   an ...

  5. android - Animation详解

    Drawable 最强大的功能是:显示Animation.AndroidSDK介绍了2种Animation: Tween Animation(渐变动画):通过对场景里的对象不断做图像变换(平移.缩放. ...

  6. Android CursorAdapter

    CursorAdapter 继承于BaseAdapter是个虚类,它为cursor和ListView提供了连接的桥梁.            public abstract class     Cur ...

  7. Android之ViewHolder用法

    先声明一下ViewHolder在Android自定义的适配器中使用.目的:优化资源,节省空间,避免重复绘制view而引起的不必要的内存损耗. 我自己以前的写法: [html] view plainco ...

  8. Android数据存储

    注:这是<Android入门与实践>的其中一章内容 在Android中,可供选择的存储方式有SharedPreferences.文件存储.SQLite数据库方式.内容提供器(Content ...

  9. Android API Demo程序框架

    前言 android API Demo程序主要演示了Android常见API的使用方法, 本文将该程序的框架提取出来, 以作为自己研究和学习Android编程的一个示例收集框架,即将所有自己研究过的例 ...

最新文章

  1. 语义分割--Dilated Residual Networks 之转载
  2. 通俗讲解Pytorch梯度的相关问题:计算图、torch.no_grad、zero_grad、detach和backward;Variable、Parameter和torch.tensor
  3. POJ 2342 (树形DP)
  4. 镶嵌至新栅格ArcGIS出现send to mail闪退情况的解决方法
  5. linux cp覆盖每次都有提示
  6. 线程池(python)
  7. 模糊控制——(1)基本原理
  8. Html转Word解决转存图片时候的跨域问题、默认打开视图问题
  9. 基于TVUE框架在中型移动端项目的直出同构实践
  10. 联合利华、微软、Brooks、Neste、ITV等另外13家公司加入《气候宣言》
  11. 如何从菜鸟(零基础)开始快速学习3ds MAX,3ds MAX建模和渲染的工作流程介绍
  12. 微信模版消息发送失败
  13. 谷歌高级架构师十年心血终成Kubernetes微服务实战文档
  14. VCN 在windows和linux之间 复制粘贴
  15. 【VFI系列2】视频内插帧中基于optical flow的 backward/forward warping
  16. 机器学习基础 维基翻译 保序回归 随机森林 Pipeline处理 及简单的sklearn例子
  17. 过去一周最吸引眼球的10大科技产品或技术
  18. 终端安全产品哪家强?
  19. 苹果以旧换新活动_苹果悄悄下调了设备回收价格 但影响大吗
  20. Java+jxbrowser+jna+js实现抖音很火的时钟桌面WallPaperEngine

热门文章

  1. 阿里架构师,讲述分布式架构云平台解决方案(附学习路线)...
  2. 将新主要功能部署到生产时要考虑的5件事情
  3. iOS 隐藏顶部状态栏方式和更改颜色
  4. 路由器简化配置和ASA异步预共享密钥方式建立IKEV2的L2L ×××
  5. 学习笔记(3.29)
  6. 学习flask的网址
  7. PHP开发之递归算法的三种实现方法
  8. 在ToolStrip中加入具有更好体验性的DateTimePicker
  9. 2.1/2.2 系统目录结构 2.3 ls命令 2.4 文件类型 2.5 alias命令
  10. mesos安装,webui显示不正常