【问题标题】:Android Intent.createChooser not working for Intent.ACTION_SENDAndroid Intent.createChooser 不适用于 Intent.ACTION_SEND
【发布时间】:2013-04-04 14:38:54
【问题描述】:

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

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

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

    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..."));
        }
    }

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

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

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

为什么选择器不显示?

【问题讨论】:

    标签: android android-intent


    【解决方案1】:

    我从这个问题中找到了答案(寻找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..."));
    

    【讨论】:

      猜你喜欢
      • 2018-07-24
      • 2012-06-15
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      • 2012-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多