listActivity和ExpandableListActivity的简单用法

  今天自己简单的总结了listActivity和ExpandableListActivity二者的简单用法。

  首先,先说一下listActivity的用法:

  ListActivity是一个绑定到一个数据源,并且用来显示这一串数据的Activity。ListActivity拥有一个listview对象来实现数据源的绑定与显示,通常会是一个array或者一个拥有查询结果的cursor.ListActivity本身有一个默认的layout,其中包含一个全屏的list。如果用默认的layout,你必须要在onCreate()中注释掉setContentView()那一句。但是如果你如果你想要定制自己的layout你可以创建一个你自己的layout文件,并且在onCreate()中调用setContentView()来指定这个layout.,需要注意的是你自己的layout中必须用到系统给定的id为"@android:id/list"的ListView。

  下面是一个简单的例子,运行结果如下:

activityde 代码如下:

package lm.muilThreadDownload;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import lm.muilThreadEntity.DownloadInfo;
import lm.muilThreadService.Downloader;import android.app.ListActivity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;public class MuilThreadDownloadActivity extends ListActivity {
@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);showListView();//显示listView}private void showListView() {List<Map<String, String>> data = new ArrayList<Map<String, String>>();Map<String, String> map = new HashMap<String, String>();map.put("name", "liming.mp3");data.add(map);map = new HashMap<String, String>();map.put("name", "liming2.mp3");data.add(map);map = new HashMap<String, String>();map.put("name", "liming3.mp3");data.add(map);SimpleAdapter adapter = new SimpleAdapter(this, data,R.layout.list_item, new String[] { "name" },new int[] { R.id.tv_resouce_name });setListAdapter(adapter);}
}

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"android:id="@+id/mainlayout">
<ListViewandroid:id="@android:id/list"  android:layout_width="fill_parent" android:layout_height="fill_parent" />
</LinearLayout>

我们看到,上面的ListView的id用的就是系统自带的"@android:id/list"。

其次,我们也可以不用布局文件,自己定义一个ListView的对象,通过id来获得加载的视图文件。具体代码如下:

package lm.mediaPlayer;import android.app.ListActivity;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;public class MyMediaPlayerActivity extends ListActivity {private ListView listView;private ScannerSDCardReceiver receiver;private boolean b = false;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);listView = new ListView(this);listView.setId(android.R.id.list);//获得listView的idsetContentView(listView);//加载listViewshowListView();}private void showListView() {//显示listViewString[] from = {"全部音乐","最近播放音乐"};ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,from);listView.setAdapter(adapter);}
}

运行结果如下:

 

最后,我们看一下ExpandableListActivity的用法,开始运行效果图如下:

当我们展开向右的箭头时,效果如下:

我们看到“国家”和“语言”分别是组名,每个组名下面还有很多child(中国,美国),(汉语,英语),其实ExpandableListActivity就是实现这样的功能,能更方便的现实一些列表信息。具体代码如下:

package lm.expendablelistAcitivity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import android.app.ExpandableListActivity;
import android.os.Bundle;
import android.widget.SimpleExpandableListAdapter;
//首先继承ExpandableListActivity
public class MyExpendableListActivityActivity extends ExpandableListActivity{/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);List<Map<String,String>> list = new ArrayList<Map<String,String>>();//组名Map<String,String> map1 = new HashMap<String,String>();map1.put("group", "国家");Map<String,String> map2 = new HashMap<String,String>();map2.put("group", "语言");list.add(map1);list.add(map2);List<Map<String,String>> listChild1 = new ArrayList<Map<String,String>>();//childMap<String,String> map3 = new HashMap<String,String>();map3.put("country", "中国");listChild1.add(map3);Map<String,String> map4 = new HashMap<String,String>();map4.put("country", "美国");listChild1.add(map4);List<Map<String,String>> listChild2 = new ArrayList<Map<String,String>>();//childMap<String,String> map5 = new HashMap<String,String>();map5.put("country", "汉语");listChild2.add(map5);Map<String,String> map6 = new HashMap<String,String>();map6.put("country", "英语");listChild2.add(map6);List<List<Map<String,String>>> childs = new  ArrayList<List<Map<String,String>>>();//将两个child加入的集合中childs.add(listChild1);childs.add(listChild2);SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter(this, list, R.layout.group, new String[]{"group"},new int[]{R.id.tv_group}, childs, R.layout.child, new String[]{"country"}, new int[]{R.id.tv_child});setListAdapter(adapter);//适配器}
}
其中group的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">
<TextViewandroid:id="@+id/tv_group"  android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingLeft="60px"android:paddingTop="10px"android:paddingBottom="10px"android:textSize="25sp"android:text="无数据"/>
</LinearLayout>

child的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">
<TextViewandroid:id="@+id/tv_child"  android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingLeft="50px"android:paddingTop="5px"android:paddingBottom="5px"android:textSize="20sp"android:text="无数据"/>
</LinearLayout>

好了,以上就是我总结的内容,希望大家多多指教!

转载于:https://www.cnblogs.com/limingblogs/archive/2011/10/09/2204866.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261213.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建git for windows服务器(100%可以成功)【转】

转自&#xff1a;http://blog.csdn.net/code_style/article/details/38764203 既然Git在linux下面非常好用&#xff0c;为什么还要搭建git windows的服务器&#xff0c;因为不是所有的用户都需要在linux下面做开发&#xff0c;对吧&#xff0c;还有很多用户选择使用windows做开…

【转】高性能WEB开发系列之重绘与回流

原文转载&#xff1a;http://www.cnblogs.com/wangzhichao/archive/2011/05/16/2047633.html页面呈现流程 在讨论页面重绘、回流之前。需要对页面的呈现流程有些了解&#xff0c;页面是怎么把html结合css等显示到浏览器上的&#xff0c;下面的流程图显示了浏览器对页面的呈现的…

[数据结构与算法] 单链表的简单demo

Vc6之下编译通过。。 1 /*******************************************************2 * : Project: 单链表数据结构演示3 * : File: link_list.h4 * : Function&#xff1a; 提供单链表操作的数据结构定义及方法声明5 * : History: 2013-10-01 22:37:056 * : Auth…

c++ 17介绍

作者&#xff1a;hearts zh链接&#xff1a;https://www.zhihu.com/question/32222337/answer/55238928来源&#xff1a;知乎著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。其实现在的proposal很多很多&#xff0c;不出意外也会有相当一部分…

“高考”机器人横空出世 2017年居然要考“大学”

文/辛东方&#xff0c;80后作家、专栏作者、专注互联网科技领域人工智能的发展&#xff0c;科学技术的全力配合&#xff0c;已经把人类的智慧实实在在的体现到了智能化设备上。按照目前的发展速度&#xff0c;人工智能要想真正突破技术难关&#xff0c;达到进一步的智能化&…

谁说菜鸟不会数据分析--数据分析那些事儿

一、数据分析是“神马” 1、 何谓数据分析 简单来说&#xff0c;数据分析就是对数据进行分析&#xff0c;较为专业的说法&#xff0c;数据分析是指用适当的统计分析方法对收集来的大量数据进行分析&#xff0c;将它们加以汇总、理解并消化&#xff0c;以求最大化地开发数据的功…

优集品 php,从细节处着眼 优集品打造成人世界的儿童节

在各大电商企业仍旧在史上最大规模的价格战中拼的不可开交之时&#xff0c;重视用户体验度&#xff0c;以商品传递生活理念而知名的全球优选设计百货--LivePort优集品(http://www.liveport.cn/)&#xff0c;已然细心的为眼下即将来临的六一儿童节策划了一餐盛宴&#xff0c;为追…

java中ssm付款代码,ssm实现支付宝支付功能(图文详解)

目录1、支付宝沙箱环境测试2、支付宝整合到ssm环境3、微信支付整合到ssm环境一、支付宝测试环境代码测试1.下载电脑网站的官方demo&#xff1a;2.下载解压导入eclipsereadme.txt请好好看一下。只有一个Java配置类&#xff0c;其余都是JSP。3.配置AlipayConfig(1).注册蚂蚁金服开…

获取android手机的屏幕分辨率 android开发

2019独角兽企业重金招聘Python工程师标准>>> /** * 获取屏幕分辨率 */ private void getResolution() { // TODO Auto-generated method stub Display display getWindowManager().getDefaultDisplay(); DisplayMetrics displayMetrics new DisplayMetrics(); dis…

Python线程指南 ---转自 http://www.cnblogs.com/huxi/archive/2010/06/26/1765808.html

Python线程指南 ---转自 http://www.cnblogs.com/huxi/archive/2010/06/26/1765808.html 本文介绍了Python对于线程的支持&#xff0c;包括“学会”多线程编程需要掌握的基础以及Python两个线程标准库的完整介绍及使用示例。 注意&#xff1a;本文基于Python2.4完成&#xff0c…

有的日期输入框,可直接调用javascripts

转载于:https://www.cnblogs.com/rf-bear/p/5549126.html

TigerDLNA for ios 集成Tlplayer

好久没有写博客了&#xff0c;这次带着TigerDLNA for ios 跟大家见面 什么都不说先上图 1.优点 优点由于libTigerDLNA使用uiview封装&#xff0c;所以大家可以很方便的集成到自己的项目中。由于集成了tlplayer当然也可以只是作为一个播放器来使用&#xff0c;支持各种网络协议。…

Android——Fragment实例精讲——底部导航栏+ViewPager滑动切换页面

说明&#xff1a; 实现效果&#xff1a; 1- 用ViewPager实现Fragmen之间的切换 2- 底部用RadioGroup实现&#xff0c;更方便的实现图片和字体颜色的改变&#xff0c;更方便的通过RadioButton的点击事件来控制页面切换 原文地址&#xff1a;http://www.runoob.com/w3cnote/andro…

springmvc错误 Spring3.X jdk8 java.lang.IllegalArgumentException

最近在学习springmvc--碰到一个特别蛋疼的错误 javax.servlet.ServletException: Servlet.init() for servlet springMVC threw exceptionorg.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)org.apache.catalina.valves.ErrorReportValv…

axure 鼠标样式,Axure8-动态面板+简单鼠标事件实现单页面应用

随着互联网的发展&#xff0c;各种网站技术以及网站的呈现技术层出不穷&#xff0c;网站的页面展现已经从之前的页面间跳转到现在大行其道的单页面应用&#xff0c;页面内容的切换不再需要进行页面的跳转了&#xff0c;使用起来更加舒适。功能在变化&#xff0c;技术在变迁&…

c3p0配置

2019独角兽企业重金招聘Python工程师标准>>> <?xml version"1.0" encoding"utf-8"?> <c3p0-config> <named-config name"mysql"> <property name"user">root</property> …

linux溢出提权

先在网站目录上传1.pl,是个反弹脚本 Phpshell执行chmod x 1.pl&#xff0c;给1.pl执行权限&#xff0c;图0 然后执行 ./1.pl 本机IP 1224接着本机监听nc -vv -l -p 1224&#xff0c;图1 反弹成功 输入id bash-3.2$ id uid529(zeicom) gid525(zeicom) groups525(zeicom) bash-3.…

php 抽象类、接口和构析方法

<?php/*class Ren {public static $color;static function Show(){Car::$name;self::$color;} }class Car {public static $name; }*///抽象类 /*abstract class DongWu {public $dong;public $jiao;function Chi(){}function Shui(){} }*///接口关键字&#xff1a;interfa…

matlab元胞矩阵赋值,matlab!怎么根据条件直接修改元胞数组中的矩阵

matlab&#xff01;怎么根据条件直接修改元胞数组中的矩阵mip版 关注:264 答案:2 悬赏:70解决时间 2021-01-28 07:03已解决2021-01-28 03:35我想实现这样的一个功能一个256*256的元胞数组Cel&#xff0c;每个元胞数组中都有一个15*4的矩阵Arr有15对256*256的矩阵a,b,c,d(分别…

动态反射——Load,LoadFrom和LoadFile

【问】 假设有一个类库文件LibraryA&#xff0c;其中有一个ClassA&#xff0c;该类的AssemblyName为“LibraryA”&#xff08;编译后的文件是LibraryA.dll&#xff09;。另外有一个LibraryB.dll类库文件&#xff0c;其中AssemblyName和其命名空间一样&#xff0c;并且其引用Lib…