android 的listactivity
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相关推荐
- Android中list常用方法,Android中ListActivity用法实例分析
本文实例分析了Android中ListActivity用法.分享给大家供大家参考,具体如下: 程序如下: import android.app.ListActivity; import android ...
- Android之ListActivity(一):布局与数据绑定
Android中的列表,当然也可以用ListView来完成所需要的功能,用法是一样的. 废话不说,来关键的. LiveActivity本身继承了关于List操作的众多接口,我们可以方便的重写这些操作中 ...
- Android 快速选择联系人
Activity 代码如下: /** Copyright (C) 2009 The Android Open Source Project** Licensed under the Apache Li ...
- android中的数据库操作(SQLite)
android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 an ...
- android - Animation详解
Drawable 最强大的功能是:显示Animation.AndroidSDK介绍了2种Animation: Tween Animation(渐变动画):通过对场景里的对象不断做图像变换(平移.缩放. ...
- Android CursorAdapter
CursorAdapter 继承于BaseAdapter是个虚类,它为cursor和ListView提供了连接的桥梁. public abstract class Cur ...
- Android之ViewHolder用法
先声明一下ViewHolder在Android自定义的适配器中使用.目的:优化资源,节省空间,避免重复绘制view而引起的不必要的内存损耗. 我自己以前的写法: [html] view plainco ...
- Android数据存储
注:这是<Android入门与实践>的其中一章内容 在Android中,可供选择的存储方式有SharedPreferences.文件存储.SQLite数据库方式.内容提供器(Content ...
- Android API Demo程序框架
前言 android API Demo程序主要演示了Android常见API的使用方法, 本文将该程序的框架提取出来, 以作为自己研究和学习Android编程的一个示例收集框架,即将所有自己研究过的例 ...
最新文章
- 语义分割--Dilated Residual Networks 之转载
- 通俗讲解Pytorch梯度的相关问题:计算图、torch.no_grad、zero_grad、detach和backward;Variable、Parameter和torch.tensor
- POJ 2342 (树形DP)
- 镶嵌至新栅格ArcGIS出现send to mail闪退情况的解决方法
- linux cp覆盖每次都有提示
- 线程池(python)
- 模糊控制——(1)基本原理
- Html转Word解决转存图片时候的跨域问题、默认打开视图问题
- 基于TVUE框架在中型移动端项目的直出同构实践
- 联合利华、微软、Brooks、Neste、ITV等另外13家公司加入《气候宣言》
- 如何从菜鸟(零基础)开始快速学习3ds MAX,3ds MAX建模和渲染的工作流程介绍
- 微信模版消息发送失败
- 谷歌高级架构师十年心血终成Kubernetes微服务实战文档
- VCN 在windows和linux之间 复制粘贴
- 【VFI系列2】视频内插帧中基于optical flow的 backward/forward warping
- 机器学习基础 维基翻译 保序回归 随机森林 Pipeline处理 及简单的sklearn例子
- 过去一周最吸引眼球的10大科技产品或技术
- 终端安全产品哪家强?
- 苹果以旧换新活动_苹果悄悄下调了设备回收价格 但影响大吗
- Java+jxbrowser+jna+js实现抖音很火的时钟桌面WallPaperEngine
热门文章
- 阿里架构师,讲述分布式架构云平台解决方案(附学习路线)...
- 将新主要功能部署到生产时要考虑的5件事情
- iOS 隐藏顶部状态栏方式和更改颜色
- 路由器简化配置和ASA异步预共享密钥方式建立IKEV2的L2L ×××
- 学习笔记(3.29)
- 学习flask的网址
- PHP开发之递归算法的三种实现方法
- 在ToolStrip中加入具有更好体验性的DateTimePicker
- 2.1/2.2 系统目录结构 2.3 ls命令 2.4 文件类型 2.5 alias命令
- mesos安装,webui显示不正常