Android Intent.createChooser不适用于Intent.ACTION_SEND

时间:2013-04-04 06:03:21

标签: android android-intent

我有一个Android应用程序,我通过自定义ListView将办公室位置加载到Adapter

在每个ListViewItem内,我有ImageView这是一个电子邮件图标,我已将自定义OnClickListener绑定到ImageView,这应允许用户创建电子邮件发送到办公地点。

我希望用户能够从他们设备上的电子邮件应用程序中进行选择,以便我在我的自定义Intent.CreateChooser()中使用OnClickListener,如下所示:

    private class EmailOnClickListener implements OnClickListener {
        private Context context;
        private String email;

        public EmailOnClickListener(Context context, String email) {
            this.context = context;
            this.email = email;
        }

        @Override
        public void onClick(View v) {
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("message/rfc822");
            intent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {email});
            intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Test Subject");

            context.startActivity(Intent.createChooser(intent, "Send mail..."));
        }
    }

我通过我的自定义OnClickListener绑定了我的自定义Adapter,如下所示:

    ImageView email = (ImageView) v.findViewById(R.id.btnEmail);
    email.setOnClickListener(new EmailOnClickListener(context, contact.getEmail()));

我目前正在使用Android 2.3的HTC Desire HD进行测试,即使我的设备上有Gmail和默认邮件,当我点击电子邮件图标时,它也没有显示选择器,但它只是加载直接进入Gmail。

为什么选择器没有显示?

1 个答案:

答案 0 :(得分:2)

我找到了这个问题的答案(寻找doreamon的答案)Send Email Intent

快速参考我已将onClick方法中的代码更改为以下内容:

Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", email, null));
intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Test Subject");

context.startActivity(Intent.createChooser(intent, "Send mail..."));