调用contact某个联系人资料后返回数据到原来的Activity

package com.example.sample_5_10;

import android.app.Activity;
import android.app.Instrumentation.ActivityResult;
import android.content.CursorLoader;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
    EditText et1;
    EditText et2;
    Button bt;
    private static final int REQUESTCODE = 2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et1 = (EditText) findViewById(R.id.editText1);
        et2 = (EditText) findViewById(R.id.editText2);
        bt = (Button) findViewById(R.id.button1);
        bt.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivityForResult(
                        new Intent(
                                Intent.ACTION_PICK,
                                android.provider.ContactsContract.Contacts.CONTENT_URI),
                        REQUESTCODE);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        switch (requestCode) {
        case REQUESTCODE:
            final Uri uriret = data.getData();
            if (uriret != null) {

                try {
                    CursorLoader loader = new CursorLoader(MainActivity.this,
                            uriret, null, null, null, null);
                    Cursor c = loader.loadInBackground();
                    c.moveToFirst();
                    String strname = c
                            .getString(c
                                    .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                    et1.setText(strname);
                    int contact_id = c.getInt(c
                            .getColumnIndex(ContactsContract.Contacts._ID));
                    Cursor phones = getContentResolver().query(
                            ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                            null,
                            ContactsContract.CommonDataKinds.Phone.CONTACT_ID
                                    + "=" + contact_id, null, null);
                    if (phones.getCount() > 0) {
                        phones.moveToFirst();
                        String phonename = phones
                                .getString(phones
                                        .getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER));
                        et2.setText(phonename);
                    }

                } catch (Exception e) {
                    // TODO: handle exception
                    e.printStackTrace();
                }
            }
            break;

        default:
            break;
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
}

联系人电话号码默认选首个,需要全部显示可以用for循环phones游标即可。

调用contact某个联系人资料后返回数据到原来的Activity,布布扣,bubuko.com

时间: 2024-10-09 12:30:27

调用contact某个联系人资料后返回数据到原来的Activity的相关文章

Winform开窗,筛选数据后返回数据的方法

在开发中,经常需要打开另一个窗体(简写为"开窗"),然后在开窗中进行数据筛选,选中需要的数据,最后将值传递给本原来的窗体.而且,这个开窗可以重复用于多个地方,其效果如同日历控件的弹出窗口.如下图所示: 测试环境 vs2008 基本思路 1.创建一个窗体类. (1)为该类添加用于传递值的属性. (2)为该类添加一个事件,用于通知调用方值已经准备好. (3)在窗体类的某个函数中,如单元格双击处理函数中,为属性赋值,并引发这个事件. 2.调用该窗体类. (1)定义一个全局的窗体类对象. (2

php 表单提交错误后返回数据消失问题的解决方法

本文章向码农们介绍php 表单提交错误后返回数据消失问题的解决方法,感兴趣的码农可以参考一下. 表单提交错误后返回数据消失怎么办呐,今天就来分析解决一下这个问题. 状况概述: 做填写表单信息提交的时候会碰到一个问题就是当用户填写并提交表单后,程序判断不符合要求并返回,返回之后之前填写的表单信息会被清空了的情况.如果填写的信息量少还无所谓,如果填写的信息量比较多,这会直接打击到填写信息的人的良好心情.因此解决表单提交错误返回后填写的内容消失的问题是一个提高用户体验度的迫在眉睫的问题. 对于这种问题

Android开发:向下一个activity传递数据,返回数据给上一个activity

1.向下一个activity传递数据 activity1 1 Button button=(Button) findViewById(R.id.button1); 2 button.setOnClickListener(new OnClickListener() { 3 4 @Override 5 public void onClick(View v) { 6 Intent intent=new Intent("1111111111111111111"); 7 intent.addCa

node.js创建服务,发送请求后返回数据

1.引入http模块 var http = require('http'); 2.创建服务 var server = http.createServer(); 3.绑定request事件 server.on('request',function(req,res){ // req.url 是访问的地址 if(req.url === '/login'){ // req.write()在页面上返回数据 res.write('login') // 返回数据后使用end,不然不能返回数据 res.end(

启动一个新的activity并携带数据,返回数据给上一个activity

一.在启动一个新的activity的时候可以通过Intent携带数据,通过Intent.putExtra()方法通过键值对的形势装入数据.在新启动的activity中通过           getIntent()方法获取启动activity的Intent,并通过getxxxxExtra()获取传递的数据. 二.如果希望被启动的新activity返回数据,则需要使用startActivityForResult()启动新的activity,方法携带两个参数,第二个为请求码,用于返回时判断是由哪个a

mybatis+mysql insert添加数据后返回数据主键id

1.根据useGeneratedKeys获取返回值,部分数据库不支持 修改mybatis xml <insert id="insertUser" useGeneratedKeys="true" keyProperty="id" parameterType="com.entity.user"> insert into test (name) values (#{name}) </insert> useGe

paramiko 登录linux主机后执行tail后返回数据不完整解决方法。

1 def get_sql_log(host,port,user,password,key_words,out_put_filename): 2 commond='cd crm-app/;./tailall.sh | grep %s'%key_words 3 s = paramiko.SSHClient() 4 s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 5 s.connect(host,port,user,password)

Android基础之——startActivityForResult启动界面并返回数据,上传头像

在android应用的开发过程中,经常会出现启动一个界面后填写部分内容后带着数据返回启动前的界面,最典型的应用就是登录过程.在很多应用程序的模块中,都有"我的"这个模块,在未登录状态下点击其中的某一项,就会弹出登录界面,登录完成后回到我的界面,会显示一些登录后的数据,这个功能的实现就要用到startActivityForResult. 下面通过一个小demo来说明一下startActivityForResult的使用,以及在实际开发中的一些应用. demo的效果图如下: 主界面布局:

mysql插入数据后返回自增ID的方法

mysql插入数据后返回自增ID的方法 mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如何能获得到这个自增id的值呢? 方法一:是使用last_insert_id mysql> SELECT LAST_INSERT_ID(); 产生的ID 每次连接后保存在服务器中.这意味着函数向一个给定客户端返回的值是该客户端产生对影响AUTO_INCREMENT列的最新语句第一个 AUTO_INCREMEN