本章主要讲了隐式Intent和字符串拼接
本章总结
隐式Intent
打开隐式Intent
通过隐式Intent可以让操作系统寻找适用的Activity。
简略形式
Intent i = ShareCompat.IntentBuilder.from(getActivity()).setType("text/plain").setText(getCrimeReport()).getIntent();//简略表达
更多系统支持的Activity 点击 官方文档
从隐式Intent取回数据
查询联系人列表返回一个uri对象,uri即为可标识的资源。查找的联系人就是一个资源,我们先新建查找目标的数组,这里只查询一个NAME。建立游标,游标中第一行即为查询的结果(只有一个数据)。
检查是否有支持的Activity
举例:调用拨号界面
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
字符串拼接
使用%1$s %2$s对应动态字符串的第一个位置和第二个位置
属性值举例说明
- %n$ms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格
- %n$md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格,也可以设为0m,在输出之前放置m个0
- %n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00
使用getStrng(动态字符串,字符串1,字符串2…) 可完成绑定
挑战练习
ShareCompat
又一个隐式intent
添加一个按钮布局,然后在数据库中根据联系人姓名查表,这里注意查的事CommonDataKinds.Phone表
注意添加权限授权
<uses-permission android:name="android.permission.READ_CONTACTS"/>
但是添加完也不够,手机默认拒绝你的权限,手动在应用信息界面允许权限。
显示效果