【问题标题】:How to get the selected email from android contacts to the app? [duplicate]如何将选定的电子邮件从 android 联系人获取到应用程序? [复制]
【发布时间】:2012-06-06 12:00:42
【问题描述】:

我想选择构建一个应用程序,该应用程序包括从本地联系人中选择电子邮件 ID。如何在应用程序中获取选定的电子邮件值。如何实现这一点,任何独立示例都会很有用。谢谢。

【问题讨论】:

    标签: android email android-contacts


    【解决方案1】:
    1. 如下实现联系人列表:

         public class contDetail extends Activity implements OnItemClickListener {    
      private static final String[] PROJECTION = new String[] {            
      ContactsContract.Contacts._ID,            
      ContactsContract.Contacts.DISPLAY_NAME,            
      ContactsContract.Contacts.HAS_PHONE_NUMBER,            
      ContactsContract.Contacts.LOOKUP_KEY  
      };
      private int mIdColumnIndex;
      private int mHasPhoneColumnIndex;
      private TextView mPhone;
      @Override    
       public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
             setContentView(R.layout.pickcontact);
         mPhone = (TextView) findViewById(R.id.test); 
      ListView myList=(ListView)findViewById(R.id.list1); 
      Cursor c = managedQuery(ContactsContract.Contacts.CONTENT_URI,
              PROJECTION, null, null, null);       
              mIdColumnIndex = c.getColumnIndex(ContactsContract.Contacts._ID);      
              mHasPhoneColumnIndex = c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);
              ListAdapter adapter = new SimpleCursorAdapter(this, 
                      android.R.layout.simple_list_item_1,c, 
                      new String[] { ContactsContract.Contacts.HAS_PHONE_NUMBER },
                      new int[] { android.R.id.text1 }); 
              myList.setAdapter(adapter); 
              myList.setOnItemClickListener(this);
              //setOnItemSelectedListener(this);      
      
         }
      
         public void onItemClick(AdapterView<?>parent, View v, int position, long id) {
      if (position >= 0) { 
      final Cursor c = (Cursor) parent.getItemAtPosition(position); 
      if (c.getInt(mHasPhoneColumnIndex) > 0) { 
      final long contactId = c.getLong(mIdColumnIndex);   
      final Cursor phones = getContentResolver().query(  
      ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
      new String[] { ContactsContract.CommonDataKinds.Phone.NUMBER }, 
      ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId, null, 
      ContactsContract.CommonDataKinds.Phone.IS_SUPER_PRIMARY + " DESC"); 
      try {             
      phones.moveToFirst();   
          mPhone.setText(phones.getString(0));
          String ph = phones.getString(0);
          Intent intent = this.getIntent(); 
          intent.putExtra("SOMETHING",ph ); 
          this.setResult(RESULT_OK, intent); 
          finish(); 
      
      } finally {                 
      phones.close();    
      }          
      } else {  
      mPhone.setText(R.string.button_info_text);  
      }}  
         }
      
         public void onNothingSelected(AdapterView parent) {
      mPhone.setText(R.string.button_info_text);
      }
      
       }
      
    2. 将所选联系人复制到您的活动的 EditText 框中,如下所示:

            @Override
       protected void onActivityResult(int requestCode, int resultCode, Intent data)                  {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode==RESULT_OK && requestCode==1)       
         ed1.setText(data.getStringExtra("SOMETHING"));
        if(resultCode==RESULT_OK && requestCode==2)       
           ed2.setText(data.getStringExtra("SOMETHING"));   
         }
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多