0

ボタンのある画面は1つだけです(後でさらに追加します)。しかし、今のところ、ボタンがクリックされたときに2つのオプションを含むダイアログボックスがポップアップするようにしたいと思います。どちらのオプションも電子メールの意図であり、異なるのは電子メールクライアントに渡されるデータのみです。これは可能ですか?私は新しい開発者であり、これは私のスタータープロジェクトの1つですので、ご容赦ください。前もって感謝します。

さて、私は私の答えを見つけました(私はこれをonClick()メソッドに入れました):

AlertDialog.Builder alertDialog = new AlertDialog.Builder(AlertDialogActivity.this);

            // Setting Dialog Title
            alertDialog.setTitle("Save File...");

            // Setting Dialog Message
            alertDialog.setMessage("Do you want to save this file?");

            // Setting Icon to Dialog
            alertDialog.setIcon(R.drawable.save);

            // Person presses first option (first email)
            alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                // User pressed YES button. Write Logic Here
               Intent emailIntent = new Intent(Intent.ACTION_SEND);
                    emailIntent.putExtra(Intent.EXTRA_EMAIL,new String[] { "email@domain.com" });
                    emailIntent.setType("message/rfc822");
                    startActivity(Intent.createChooser(emailIntent, "Send email..."));
                }
            });

            // Person presses second option (second email)
            alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                Intent emailIntent = new Intent(Intent.ACTION_SEND);
                    emailIntent.putExtra(Intent.EXTRA_EMAIL,new String[] { "example@domain.com" });
                    emailIntent.setType("message/rfc822");
                    startActivity(Intent.createChooser(emailIntent, "Send email..."));
                }
            });

            // Put a "cancel" button
            alertDialog.setNeutralButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                // User pressed Cancel button. Write Logic Here
                Toast.makeText(getApplicationContext(), "You clicked on Cancel",
                                    Toast.LENGTH_SHORT).show();
                }
            });

            // Show the dialog
            alertDialog.show();
4

2 に答える 2

1
CharSequence[] arrayMail = {"first mail option", "second one"};
            builder.setTitle("Mail").setItems(arrayMail, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    if(which==0)
                    {
                        Intent emailIntent = new Intent(Intent.ACTION_SEND);
                        emailIntent.putExtra(Intent.EXTRA_EMAIL,new String[] { "first data" });
                        emailIntent.setType("text/plain");
                        startActivity(Intent.createChooser(emailIntent, "Send email ..."));
                    }
                    if(which==1)
                    {
                        Intent emailIntent = new Intent(Intent.ACTION_SEND);
                        emailIntent.putExtra(Intent.EXTRA_EMAIL,new String[] { "Second data" });
                        emailIntent.setType("text/plain");
                        startActivity(Intent.createChooser(emailIntent,"Send email"));
                    }
                }
            });
            builder.setPositiveButton("Cancel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });
            AlertDialog dialogSeguin = builder.create();
            dialogSeguin.show();

もちろん、文字チェーンには「strings.xml」を使用することをお勧めします

于 2013-03-27T08:29:16.770 に答える
0

1つのインテントを使用し、インテントにPutExtra()を使用できます。ボタンのクリックに応じて、電子メールクライアントで使用できるデータをExtraに追加できます。

于 2013-03-27T10:03:23.657 に答える