Bボタンを押すと、メーラーを起動して、選択したアドレスを宛先にセットします。
※注意: Android1.xだと「ContactsContract」が使えないみたいなんで、Android2.x以上で使ってください。
Sample.java
public class Samole extends Activity implements OnClickListener {
private static final int PICK_CONTACT = 0;private Button selectButton;
private Button sendButton;private TextView addressText;
private String id;
private String uri;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.personal);
selectButton = (Button)findViewById(R.id.selectbtn);
sendButton = (Button)findViewById(R.id.sendbtn);
addressText = (TextView)findViewById(R.id.textview);
selectButton.setOnClickListener(this);
sendButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.selectbtn:
Intent pickIntent = new Intent(Intent.ACTION_PICK,
ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(pickIntent, PICK_CONTACT);break;
case R.id.sendbtn:
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SENDTO);
sendIntent.setData(Uri.parse("mailto:" + uri));
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Test"); // 件名
sendIntent.putExtra(Intent.EXTRA_TEXT, "Test"); // 本文
startActivity(sendIntent);
break;
}
}
@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch(reqCode) {
case(PICK_CONTACT):
if(resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
while(c.moveToNext()) {
id = c.getString(c.getColumnIndex(c.getColumnName(11)));
}
}
Cursor emails = managedQuery(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + id,
null,
null);while(emails.moveToNext()) {
uri = emails.getString(emails.getColumnIndex(
ContactsContract.CommonDataKinds.Email.DATA));}
addressText.setText("address: " + uri);
}
}}