4

ListViewカスタム経由でオフィスの場所をロードしているAndroidアプリケーションがありますAdapter

それぞれの内部ListViewItemImageViewは、電子メール アイコンである があり、ユーザーがオフィスの場所に送信する電子メールを作成できるようにするカスタム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 に直接読み込まれます。 .

セレクターが表示されないのはなぜですか?

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 に答える