2013-04-04 46 views
3

我有一个Android应用程序,我通过自定义Adapter将办公室位置加载到ListViewAndroid Intent.createChooser不工作Intent.ACTION_SEND

里面每个ListViewItem我有一个ImageView这是一个邮件图标,我已绑定的自定义OnClickListenerImageView应该允许用户创建一个电子邮件发送给一个办公地点。

我希望用户能够从哪些是他们的设备上的电子邮件应用程序中选择,所以我已经在我的自定义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...")); 
     } 
    } 

我已经通过结合我的自定义OnClickListener我定制Adapter如下:

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

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

为什么选择器不显示?

回答

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