如何在Android应用程序的警报对话框中编写用户输入代码?

时间:2013-12-12 22:25:25

标签: java android user-input alertdialog android-alertdialog

我有一个有两个按钮的Android应用程序。所以基本上我要做的是当用户点击页面上的“分享按钮”时,会出现一个警告对话框,提示用户输入他们的电子邮件地址。这是我到目前为止所拥有的。我尝试过EditView,但它对我来说效果不佳。

提前致谢!

package com.colors;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

    final Context context = this;
    private Button button;
    private Button shareButton;

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button = (Button) findViewById(R.id.button);
    shareButton = (Button) findViewById(R.id.shareButton);

    // add button listener for Welcome Message.
    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {

            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                    context);

            // set the title of the Alert Dialog
            alertDialogBuilder.setTitle("Welcome!");

            // set dialog message
            alertDialogBuilder
                    .setMessage("Program Description here...")
                    .setCancelable(false)
                    .setNegativeButton("OK",
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog,
                                        int id) {
                                    // if no is clicked, just close
                                    // the dialog box and do nothing
                                    dialog.cancel();
                                }
                            });

            AlertDialog alertDialog = alertDialogBuilder.create();

            alertDialog.show();
        }
    });





    // Button listener for Share Button
            shareButton.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {

                    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                            context);

                    // set the title of the Alert Dialog
                    alertDialogBuilder.setTitle("Share");

                    // set dialog message
                    alertDialogBuilder
                            .setMessage("Would like to a user input here.")
                            .setCancelable(false)
                            .setPositiveButton("Send!",
                                    new DialogInterface.OnClickListener() {
                                        public void onClick(DialogInterface dialog,
                                                int id) {
                                            // if no is clicked, just close
                                            // the dialog box and do nothing
                                            dialog.cancel();
                                        }
                                    })
                            .setNegativeButton("Cancel",
                                    new DialogInterface.OnClickListener() {
                                        public void onClick(DialogInterface dialog,
                                                int id) {
                                            // if no is clicked, just close
                                            // the dialog box and do nothing
                                            dialog.cancel();
                                        }
                                    });

                    AlertDialog alertDialog = alertDialogBuilder.create();

                    alertDialog.show();
                }
            });

}

}

2 个答案:

答案 0 :(得分:1)

这可能对您有所帮助。

                        shareButton.setOnClickListener(new OnClickListener() {
                            public void onClick(View v) {


                                AlertDialog.Builder al1 = new Builder(
                                        AgriListView.this);
                                al1.setMessage("Share Something");

                                al1.setPositiveButton("Share",
                                        new DialogInterface.OnClickListener() {

                                            public void onClick(
                                                    DialogInterface dialog,
                                                    int which) {

                                                final EditText input = new EditText(
                                                        AgriListView.this);
                                                input.setSingleLine();

                                                AlertDialog.Builder al = new Builder(
                                                        AgriListView.this);
                                                al.setTitle("Enter New Value");
                                                al.setView(input);
                                                al.setCancelable(true);
                                                al.setIcon(R.drawable.bt);
                                                al.setPositiveButton(
                                                        "OK",
                                                        new DialogInterface.OnClickListener() {

                                                            public void onClick(
                                                                    DialogInterface dialog,
                                                                    int which) {

                                                                int len = input
                                                                        .length();

                                                                if (!(len == 0)) {

                                                                    Toast.makeText(
                                                                            AgriListView.this,
                                                                            "Entered text is: "+input.getText()
                                                                                ,
                                                                            Toast.LENGTH_SHORT)
                                                                            .show();

                                                                } else {

                                                                    Toast.makeText(
                                                                            getApplicationContext(),
                                                                            "Enter Value Properly",
                                                                            Toast.LENGTH_LONG)
                                                                            .show();
                                                                }
                                                            }

                                                        });

                                                al.setNegativeButton(
                                                        "Cancel",
                                                        new DialogInterface.OnClickListener() {

                                                            public void onClick(
                                                                    DialogInterface dialog,
                                                                    int which) {
                                                                dialog.cancel();
                                                            }
                                                        });

                                                AlertDialog alert = al.create();
                                                alert.show();
                                            }
                                        });

                                al1.setNegativeButton("Cancel",
                                        new DialogInterface.OnClickListener() {

                                            public void onClick(
                                                    DialogInterface dialog,
                                                    int which) {
                                                dialog.cancel();

                                            }
                                        });

                                AlertDialog alert1 = al1.create();
                                alert1.show();
                            }

                        });

此代码使用Edittext值创建对话框。

答案 1 :(得分:0)

你可以这样做。

AlertDialog.Builder alert = new AlertDialog.Builder(this);

alert.setTitle("Title");
alert.setMessage("Message");

// Set an EditText view to get user input 
final EditText input = new EditText(this);
alert.setView(input);

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
        String value = input.getText();
        // Do something with value!
    }
});

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
    // Canceled.
    }
});

alert.show();