startActivityForResult()方法具体解释
2016-01-11 12:15
344 查看
我们都知道。要开启一个Activity能够在上下文环境中调用startActivity()方法。 可是假设想从开启的Activity中获取某些数据,就能够使用startActivityForResult()方法了。比方你须要从获取系统通讯录中的某个联系人的信息,就能够在当前Activit中使用startActivityForResult()方法来开启系统通讯录相关Activity,然后在响应完用户操作之后,系统通讯录Activity就会关闭,然后当前Activity的onActivityResult()方法就会接收到返回的数据。
代码例如以下:
private void pickContact() { // Create an intent to "pick" a contact, as defined by the content provider URI Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI); startActivityForResult(intent, PICK_CONTACT_REQUEST); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // If the request went well (OK) and the request was PICK_CONTACT_REQUEST if (resultCode == Activity.RESULT_OK && requestCode == PICK_CONTACT_REQUEST) { // Perform a query to the contact's content provider for the contact's name Cursor cursor = getContentResolver().query(data.getData(), new String[] {Contacts.DISPLAY_NAME}, null, null, null); if (cursor.moveToFirst()) { // True if the cursor is not empty int columnIndex = cursor.getColumnIndex(Contacts.DISPLAY_NAME); String name = cursor.getString(columnIndex); // Do something with the selected contact's name... } } <pre>}
startActivityForResult()方法有两个參数,第一个參数为Intent,第二个參数为自己定义的一个请求码,这个请求码会在onActivityResult()方法中被返回。
resultCode == Activity.RESULT_OK是推断结果是否返回成功,requestCode == PICK_CONTACT_REQUEST 是推断返回的请求码是否是前面设置好的请求码,假设是的话就证明onActivityResult()方法返回的是我们要做的请求。
相关文章推荐
- JS 判断上传 文件 大小
- IOS-底层数据结构
- 如何确保项目开发敏捷和安全两者兼得呢?
- 关于CentOS/RHEL中GlusterFS版本说明
- JDBC对象
- 先贴上代码:Random快排,快排的非递归实现
- java 检查a字符串是否包含b字符串
- 机器学习xgboost实战—手写数字识别
- 字符串数组转化成十六进制字符串
- JS 判断上传 文件 大小
- swift 之SnapKit 动画
- poj 3295
- In C++, what’s the difference between an inline function and a macro?
- eclipse 使用Maven deploy命令打包源码到私服nexus
- nsset
- 【蓝桥杯】【锦标赛】
- Cocos2dx 3.0 过渡篇(三十)灰机还是3D好(Sprite3D)
- Sublime Text 2/3安装CTags实现函数跳转
- 模糊查询
- 根据字符串中的具体信息来找到其具体位置和长度