当前位置:  编程技术>移动开发
本页文章导读:
    ▪ContactsContract获取联系人信息及双向查寻联系人信息        ContactsContract获取联系人信息及双向查找联系人信息 添加权限:   <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>     try { /* 必须要有android.permission.READ_CONTACTS权限.........
    ▪ 对View组件touch事件响应的了解        对View组件touch事件响应的理解 Android响应View组件的touch事件通常是采用重写onTouch(MotionEvent event)方法,或者是setOnTouchListener()设置listener.View组件的touch事件的响应是通过调用dispatchTouchEvent(Mot.........
    ▪ 抚摸任意位置关闭Activity       触摸任意位置关闭Activity /** 点击屏幕任意位置关闭Activity*/ public boolean onTouchEvent(MotionEvent event) { finish(); return super.onTouchEvent(event); }   ......

[1]ContactsContract获取联系人信息及双向查寻联系人信息
    来源: 互联网  发布时间: 2014-02-18
ContactsContract获取联系人信息及双向查找联系人信息

添加权限:

 

<uses-permission
		android:name="android.permission.READ_CONTACTS"></uses-permission>
 

 

try {
			/* 必须要有android.permission.READ_CONTACTS权限 */
			Cursor cursor = managedQuery(
					android.provider.ContactsContract.Contacts.CONTENT_URI,
					null, null, null, null);
			/* 将Cursor移到资料最前端 */
			for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor
					.moveToNext()) {

				/* 取得联络人的姓名 */
				String strName = cursor
						.getString(cursor
								.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
				/* 取得联络人的电话 */
				int contactId = cursor.getInt(cursor
						.getColumnIndex(ContactsContract.Contacts._ID));
				Cursor phones = getContentResolver().query(
						ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
						null,
						ContactsContract.CommonDataKinds.Phone.CONTACT_ID
								+ " = " + contactId, null, null);
				int typePhone, resType;
				String numPhone;
				if (phones.getCount() > 0) {
					phones.moveToFirst();
					/* 2.0可以允许User设定多组电话号码,但本范例只捞一组电话号码作示范 */
					typePhone = phones
							.getInt(phones
									.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
					numPhone = phones
							.getString(phones
									.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
					resType = ContactsContract.CommonDataKinds.Phone
							.getTypeLabelResource(typePhone);
					addItem(strName, getString(resType) + ":" + numPhone);//添加到ListView中,此代码略去
				}

			}
		} catch (Exception e) {
			e.printStackTrace();
		}


 

根据号码查找联系人

 

 

public String getContactPeople(String incomingNumber) {
		
		String contactPeople = "";
		
		ContentResolver contentResolver = getContentResolver();
		Cursor cursor = null;

		/* cursor里要放的字段名称 */
		String[] projection = new String[] { ContactsContract.Contacts._ID,
				ContactsContract.Contacts.DISPLAY_NAME,
				ContactsContract.CommonDataKinds.Phone.NUMBER };

		/* 用来电电话号码查找该联系人 */
		cursor = contentResolver.query(
				ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection,
				ContactsContract.CommonDataKinds.Phone.NUMBER + "=?",
				new String[] { incomingNumber }, "");

		/* 找不到联系人 */
		if (cursor.getCount() == 0) {
			contactPeople = "未知联系人";
		} else if (cursor.getCount() > 0) {
			cursor.moveToFirst();
			/* projection这个数组里 */
			contactPeople = cursor.getString(1);
		}
		
		return contactPeople;

	}

根据联系人查找号码

/* 以联系人名称搜索通信录中联系人的电话的method */
	private String getContactPeople(String name) {
		String result = "";
		ContentResolver contentResolver = EX06_23.this.getContentResolver();
		Cursor cursor = null;

		/* 要搜索的字段名称 */
		String[] projection = new String[] { ContactsContract.CommonDataKinds.Phone.NUMBER };

		/* 以联系人的名字去找该联系人的电话 */
		cursor = contentResolver.query(
				ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection,
				ContactsContract.Contacts.DISPLAY_NAME + "=?",
				new String[] { name }, "");

		if (cursor.getCount() != 0) {
			cursor.moveToFirst();
			/* 取得联系人电话 */
			result = cursor.getString(0);
		}
		return result;
	}

    
[2] 对View组件touch事件响应的了解
    来源: 互联网  发布时间: 2014-02-18
对View组件touch事件响应的理解
Android响应View组件的touch事件通常是采用重写onTouch(MotionEvent event)方法,或者是setOnTouchListener()设置listener.View组件的touch事件的响应是通过调用dispatchTouchEvent(MotionEvent event)方法分发的,当touch listener为null或者它返回的结果是false时,就调用onTouch()方法,所以touch listener的优先级要比onTouch()方法的高。当onTouch()方法返回false时,才会触发view组件parent的touch事件响应。

    ViewGroup的dispatchTouchEvent()方法有所不同,它会对touch事件进行解析,通过调用onInterceptTouchEvent(MotionEvent event), 若返回false时会将事件分发给响应的子组件,否则自己响应这个touch事件,默认的为false, 可以对这个方法进行重写来拦截touch事件。因此,view组件响应事件的机制是,touch事件从view组件树顶层一直分发下去到最底层的组件上,当组件没有consume这个事件时会传回到上一级进行处理,直到返回到最底层扔出,这会最终被Activity进行处理,因为事件最开始分发的地方是从Activity开始的,它会调用getWindow().superDispatchTouchEvent(ev)方法把事件分发给组件树,若果view组件树没有处理则最终会调用自己的onTouch(MotionEvent event)方法。[/size][/size]

    
[3] 抚摸任意位置关闭Activity
    来源: 互联网  发布时间: 2014-02-18
触摸任意位置关闭Activity
	/**	点击屏幕任意位置关闭Activity*/
	public boolean onTouchEvent(MotionEvent event)
	{
		finish();
		return super.onTouchEvent(event);
	}
 

    
最新技术文章:
▪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