当前位置:  编程技术>移动开发
本页文章导读:
    ▪ExpandableListActivity 运用        ExpandableListActivity 使用 ExpandableListActivity   [功能] sdk 也有关于ExpandableListActivity 代码例子 路径如下:   写道 android-sdk-windows-1.5_r2\platforms\android-1.5\samples\ApiDemos\src\com\example\android\apis\view     .........
    ▪ Bash的很好特性        Bash的良好特性 (1) 命令补齐:当输入了命令名的前几个字母后,按 Tab 键 Bash 会尝试着补齐该命令剩下的几个字母。 (2) 命令行编辑快捷键: Ctrl+a 光标跳到行头; Ctrl+e 光标跳到行尾; Ct.........
    ▪ 领航相关概念       导航相关概念 1. Google Map的定位 (1)Google公司针对Symbian,J2ME,WM推出的最新Google Map拥有定位功能,但是这个定位并不是基于GPS(接收卫星信号)的定位。而是基于A-GPS(主要接收基站信号)定.........

[1]ExpandableListActivity 运用
    来源: 互联网  发布时间: 2014-02-18
ExpandableListActivity 使用

ExpandableListActivity

 

[功能]

sdk 也有关于ExpandableListActivity 代码例子 路径如下:

 

写道
android-sdk-windows-1.5_r2\platforms\android-1.5\samples\ApiDemos\src\com\example\android\apis\view

 

 

但是sample例子所使用的数据源是静态的 即不能实时变化 使得其实用性大打折扣 现在以动态数据为例

 

 

 

[代码 步骤]

1. 规划数据结构用于存放 Group 及其 子数据 Child

//存放 Groop 数据
public List<String> group;

//存放 Child 数据 以其所属于的Group细分 
public List<List<String>> child;

 

 

 

 

2. 定义 class ExpandInfoAdapter extends BaseExpandableListAdapter

public class ExpandInfoAdapter extends BaseExpandableListAdapter {

		@Override
		public Object getChild(int arg0, int arg1) {
			// TODO Auto-generated method stub
			return null;
		}

		@Override
		public long getChildId(int arg0, int arg1) {
			// TODO Auto-generated method stub
			return 0;
		}

		@Override
		public View getChildView(int arg0, int arg1, boolean arg2, View arg3,
				ViewGroup arg4) {
			// TODO Auto-generated method stub
			return null;
		}

		@Override
		public int getChildrenCount(int arg0) {
			// TODO Auto-generated method stub
			return 0;
		}

		@Override
		public Object getGroup(int arg0) {
			// TODO Auto-generated method stub
			return null;
		}

		@Override
		public int getGroupCount() {
			// TODO Auto-generated method stub
			return 0;
		}

		@Override
		public long getGroupId(int arg0) {
			// TODO Auto-generated method stub
			return 0;
		}

		@Override
		public View getGroupView(int groupPosition, boolean isExpanded,
				View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
			return null;
		}

		@Override
		public boolean hasStableIds() {
			// TODO Auto-generated method stub
			return false;
		}

		@Override
		public boolean isChildSelectable(int groupPosition, int childPosition) {
			// TODO Auto-generated method stub
			return false;
		}
		
	}

 

 

 

3. 填充ExpandInfoAdapter 的函数

 

* 完成与 Child 功能相关的函数列表

写道
public Object getChild(int arg0, int arg1)

public long getChildId(int arg0, int arg1)

public View getChildView(int arg0, int arg1, boolean arg2, View arg3,
ViewGroup arg4)

public int getChildrenCount(int arg0)

 

其实现如下:

@Override
		public Object getChild(int arg0, int arg1) {
			// TODO Auto-generated method stub
			return child.get(arg0).get(arg1);
		}

		@Override
		public long getChildId(int arg0, int arg1) {
			// TODO Auto-generated method stub
			return arg1;
		}
		
		@Override
		public int getChildrenCount(int arg0) {
			// TODO Auto-generated method stub
			return child.get(arg0).size();
		}

		@Override
		public View getChildView(int arg0, int arg1, boolean arg2, View arg3,
				ViewGroup arg4) {
			// TODO Auto-generated method stub
			return getChildViewStub(child.get(arg0).get(arg1).toString());
		}
		
		public TextView getChildViewStub(String s) {
            // Layout parameters for the ExpandableListView
            AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
                    ViewGroup.LayoutParams.FILL_PARENT, 64);

            TextView text = new TextView(activity);
            text.setLayoutParams(lp);
            text.setTextSize(20);
            text.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
            text.setPadding(36, 0, 0, 0);
            text.setText(s);
            return text;
        }

 

 

 

* 再完成与 Group 有关的函数列表

写道
public Object getGroup(int arg0)

public int getGroupCount()

public long getGroupId(int arg0)

public View getGroupView(int arg0, boolean arg1, View arg2,
ViewGroup arg3)

 

其实现如下:

@Override
		public int getGroupCount() {
			// TODO Auto-generated method stub
			return group.size();
		}

		@Override
		public long getGroupId(int arg0) {
			// TODO Auto-generated method stub
			return arg0;
		}

		@Override
		public View getGroupView(int arg0, boolean arg1, View arg2,
				ViewGroup arg3) {
			// TODO Auto-generated method stub
			return getGroupViewStub(getGroup(arg0).toString());
		}

		public TextView getGroupViewStub(String s) {
            // Layout parameters for the ExpandableListView
            AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
                    ViewGroup.LayoutParams.FILL_PARENT, 64);

            TextView text = new TextView(activity);
            text.setLayoutParams(lp);
            text.setTextSize(20);
            text.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
            text.setPadding(36, 0, 0, 0);
            text.setText(s);
            return text;
        }

 

 

 

4. BaseExpandableListAdapter 除了 Group Child 外 还有一些别的函数 如:

*

public void onGroupExpanded(int groupPosition){
        }
        
        public void onGroupCollapsed(int groupPosition){
        }

 

写道
二者属于回调函数 当ExpandableListActivity中的Group 被展开/收拢 就会回调上面的函数

 

*

public boolean isChildSelectable(int arg0, int arg1) {
			// TODO Auto-generated method stub
			return true;
		}

 

写道
用于设定 Child 是否可以选择 获取 selected

 

 

5. 插入数据

public void addItemByValue(String n,String c1,String c2){
    	group.add(n);
    	
    	List<String> item = new ArrayList<String>();
    	
    	item.add(NAME+n);
    	item.add(PHONE+c1);
    	item.add(SEX+c2);
    	
    	child.add(item);
    }

 

 

本例的数据为:

addItemByValue("Griffin","051782214","man");
        addItemByValue("Billy","110","mal");
        addItemByValue("Kindy","132","femal");
        addItemByValue("Patric","13321234562","femal");

 

 

 

6. emulator 运行截图:

 

* Group 的截图:

 

 

 

* Griffin 选项展开截图:

 

 

 

* Patric 选项展开截图:

 

 

done!

 

1 楼 dengrui0917 2010-05-25  
你能在每个选项中添加CheckBox不,能的话请教我吧,我急用,谢谢,我的邮箱:dengrui0917@126.com(可以的话发我邮箱里)
2 楼 gryphone 2010-05-26  
dengrui0917 写道
你能在每个选项中添加CheckBox不,能的话请教我吧,我急用,谢谢,我的邮箱:dengrui0917@126.com(可以的话发我邮箱里)

dengrui0917 写道
你能在每个选项中添加CheckBox不,能的话请教我吧,我急用,谢谢,我的邮箱:dengrui0917@126.com(可以的话发我邮箱里)

可以啊 你只需定制化方法:getChildView() 即可
3 楼 zhuixinjian 2010-05-26  
别陷入apidemo里面带的那个例子..


重写adapter,在item里面加上checkbox,外边定义一个数组,定义哪个被check,哪个没有

每次更新notifydatachange就OK了
4 楼 hellorheaven 2010-09-20  
很详细,受教了!

    
[2] Bash的很好特性
    来源: 互联网  发布时间: 2014-02-18
Bash的良好特性

(1) 命令补齐:当输入了命令名的前几个字母后,按 Tab 键 Bash 会尝试着补齐该命令剩下的几个字母。

(2) 命令行编辑快捷键:

Ctrl+a 光标跳到行头;

Ctrl+e 光标跳到行尾;

Ctrl+l 清屏并把当前命令作为屏幕上第一条命令显示。

(3) 命令历史记录:向上或向下箭头可访问命令历史记录。输入!号和历史表中命令的第一个字符,就可以执行最近一条以该字母开头的命令。

(4) 选取和粘贴文本:当想要将选取的文本粘贴到命令行的光标所在处时,只要按一下鼠标右键即可。

(5) 管道与输入、输出重定向

可以使用管道 (|) 将多个命令连接起来,把前一个命令的输出作为后一个命令的输入。例如

#ls -l -a | more

前一个命令“ ls -l -a ”的输出不再是显示到标准输出设备(屏幕终端),而是被重定向为后一个命令“ more ”的标准输入。

Bash 中还可以利用重定向符号“〈”和“〉”重定向标准输入和输出。例如,使用命令

#ls -l -a > f1

则可以将命令“ ls -l -a ”的输出保存到文件“ f1 ”中。在执行该重定向命令前,若文件 f1 不存在则会创建该文件,若文件 f1 已经存在则会覆盖原先的文件。有时,在使用该重定向功能时,我们希望将一个命令的执行结果追加到已有的文件之后,而不是将原先的文件覆盖,这时可以使用非破坏性的追加重定向操作符“〉〉”。例如,可以使用命令

#ls -l -a 〉〉 f1

同样,可以用符号“〈”把文件内容作为标准输入。

(6) 命令替换:命令替换类似于管道命令,但不同之处在于,管道中一个命令的标准输出被重定向到另一命令的标准输入,而命令替换中一个命令的标准输出变成另一命令的变元或参数。它的语法格式可以表示为

#command1 `command2`

注:所使用的是向后的单引号。

下面,我们来看一个例子。假设要压缩所有扩展名为 .txt 的文件,可以用命令:

#gzip `find / -name *.txt -print`

其中,命令“ find / -name *.txt -print ”的作用是得到所有这些文件的清单。

 


    
[3] 领航相关概念
    来源: 互联网  发布时间: 2014-02-18
导航相关概念

1. Google Map的定位

(1)Google公司针对Symbian,J2ME,WM推出的最新Google Map拥有定位功能,但是这个定位并不是基于GPS(接收卫星信号)的定位。而是基于A-GPS(主要接收基站信号)定位。Google这项技术基于手机基站ID信息(根据手机移动网络的发射塔来确定手机的相对位置),Google Map的定位数据是中国移动提供的,实际上中国移动等运营商也有类似的mobile定位增值业务,但从未以免费软件的方式出现。相比GPS定位,这种定位方式速度更快,在室内也可使用,并且不会像GPS模块一样消耗手机电能,但缺点是定位信息不够准确,精度可能仅有几百米。Google保证这项服务不会收集用户信息,不会涉及任何隐私,用户也可以随时关闭该定位功能。 目前该项服务支持的国家和地区超过20个,包括美国、欧洲大部分国家、澳大利亚、新西兰、俄罗斯和中国台湾。大陆和日本的基站位置数据库尚未添加。

(2)A-GPS首次定位时间短,可以快速启动,GPS启动后需要寻星,这个过程用时较长。A-GPS也可以通过GPS卫星定位,即关闭GPRS后,A-GPS和GPS一样还可以利用卫星定位。

(3)Google Map的定位数据是中国移动提供的,是否意味着移动将用户位置信息提供给了Google?不是,移动并不是把用户信息提供给Google,而只需把基站地理位置提供就可以了。Google从移动那获得基站位置数据,然后用户通过GPRS会获得附近几个可连接基站的ID(和基站通讯),把这些ID传给Google,Google再从数据库中查出地理位置并传回给用户。这个过程中Google并没有获得用户信息。

 

2. GPS导航入门

(1)什么是GPS:通过在2万公里高空的美国的24颗卫星所发射免费的信号,通过接收设备,来确定您的具体位置(经纬度、高度、速度、航向)的系统。注意,这个服务是免费的。

(2)GPS的实现方案

      1)GPS专业车载导航仪方案:专门用于车载导航的机器,内置正版的专业导航软件(如道道通、灵图、城际通、凯立德、route66等,也有的品牌可以安装破解版,价格可以便宜不少),一般安装直流平板陶瓷天线,接受GPS信号能力强大,搜星速度快,可以实现快速开机导航。由于整个机器都是用于导航的,所以比PDA、手机的GPS导航更流畅,很少出现死机、顿机等情况,搜索目的地也快很多。同时最大的特点就是省事。开机就可以用,不用安装软件,不用进行设置,不用进行蓝牙匹配(这些在手机GPS方案中都要涉及)。主流机型:中环导航、朗视通、Garmin、神达。大品牌有全国联保。

      2)手机、PDA、笔记本GPS方案:需要你去买一个蓝牙GPS接收器,然后和你的现有设备(手机、PDA、笔记本)配合使用。需要您的手机、PDA、笔记本具有蓝牙功能。如果你的笔记本没有蓝牙,可以购买蓝牙适配器,使您的笔记本具备蓝牙功能。要实现导航,还需要软件地图,这些都可以从 网上下载。也可以购买正版地图。如果您想要您的手机/PDA同时安装多个地图软件,那您需要一个比较大的存储卡。

      3)GPS一体机方案:一体机就是PDA或手机具备GPS功能,有的甚至自带正版地图,买回来打开就可以用。
      4)GPS手持机:GPS手持机,主要用于专业定位导航、户外探险等,在恶劣环境下可以稳定使用。主要是美国的产品,如Garmin等品牌。

(3) 如何选择蓝牙GPS模块:GPS芯片,导航的准确性最关键的是接受卫星信号的精度和算法。而卫星接收性能,主要由GPS的芯片决定。现在主流的是 Sirf三代芯片具有20个卫星通道(sirf二代有12个通道)。其他的还有sony的芯片和瑞士的RFMD芯片。这些芯片在实际使用中的效果和sirf的有明显的差距。还有GPS电源和GPS天线也要重点考虑。

(4)GPS地图软件:每一种GPS导航软件,都是针对不同的操作系统开发的,或者说它会发布几个版本,针对不同的操作系统。

(5) 手机GPS和纯GPS区别:手机GPS波特率都是4800的,定位信息1秒刷新一次,有部分的车载GPS是38400的波特率
定位信息1秒刷新5次,也就是说一个100km/h的物体如果没有惯性导航软件的话,手机GPS的位置误差要在原有精度上+-28米,而车载GPS误差+-5米。

 

3. GPS的输出
GPS定位信息串行输出格式大多采用美国国家海洋电子协会制定的NMEA-0183 通信标准格式。其输出数据采用的是ASCII码,内容包含了纬度、经度、高度、速度、日期、时间、航向以及卫星状况等信息。具体输出格式及输出标准、精度等请用到时再查阅。


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3