4

我有一个 android 应用程序,我ListView通过自定义将办公地点加载到Adapter.

在每个里面ListViewItem我有一个ImageViewwhich 是一个电子邮件图标,并且我已经绑定了一个自定义OnClickListenerImageView它应该允许用户创建一封电子邮件以发送到办公室位置。

我希望用户能够从他们设备上的电子邮件应用程序中进行选择,所以我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 .

为什么选择器不显示?

4

1 回答 1

3

我从这个问题中找到了答案(寻找 doreamon 的答案)发送电子邮件意图

为了快速参考,我已将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..."));
于 2013-04-04T06:38:54.090 回答