Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓:点击按钮打开带有数字键盘的AlertDialog_Android_Android Edittext_Android Alertdialog - Fatal编程技术网

Android 安卓:点击按钮打开带有数字键盘的AlertDialog

Android 安卓:点击按钮打开带有数字键盘的AlertDialog,android,android-edittext,android-alertdialog,Android,Android Edittext,Android Alertdialog,基本上,我有一个叫做签入的按钮,我可以让它打开AlertDialog,但不是我想要的方式。我希望它打开一个AlertDialog,打开一个EditText,这样我就可以使用numberpad电话样式输入一个号码。然后,我将使用该值调用一个方法:如果他们单击“正”按钮“签入”,则调用“检查无效”;如果他们单击“负”按钮“取消”,则调用该方法将不起任何作用。我试图使其在下面的代码块中为您工作,如果您需要任何更改,请告诉我 AlertDialog.Builder sayWindows = ne

基本上,我有一个叫做签入的按钮,我可以让它打开AlertDialog,但不是我想要的方式。我希望它打开一个AlertDialog,打开一个EditText,这样我就可以使用numberpad电话样式输入一个号码。然后,我将使用该值调用一个方法:如果他们单击“正”按钮“签入”,则调用“检查无效”;如果他们单击“负”按钮“取消”,则调用该方法将不起任何作用。

我试图使其在下面的代码块中为您工作,如果您需要任何更改,请告诉我

    AlertDialog.Builder sayWindows = new AlertDialog.Builder(
            MainActivity.this);

    final EditText saySomething = new EditText(MainActivity.this);
    saySomething.setInputType(InputType.TYPE_CLASS_PHONE);
    sayWindows.setPositiveButton("ok",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    Log.i(TAG, "OK");
                    String mString = saySomething.getText().toString();
                    Log.i(TAG, "mString = " + mString);
                    // Your checkin() method
                }
            });

    sayWindows.setNegativeButton("cancel",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    Log.i(TAG, "Cancel");
                }
            });

    sayWindows.setView(saySomething);
    sayWindows.create().show();
试着这样做:

Button btnChkIn = (Button) findViewById(R.id.btnChkIn);

btnChkIn.setOnClickListener(new OnClickListener()
{

    @Override
            public void onClick(View v) 
            {
                showCheckInAlert();
            }

});

//function showing AlertDialog with EditText....
public void showCheckInAlert()
    {
        AlertDialog.Builder builder = new AlertDialog.Builder(context);

        builder.setTitle("your title here if needed...");

        builder.setMessage("your message here if needed...");

        final EditText et = new EditText(context);

        et.setInputType(InputType.TYPE_CLASS_PHONE);//or you can choose input type what ever you want...

        builder.setView(et);

        builder.setPositiveButton("Check In", new DialogInterface.OnClickListener() 
        {
            @Override
            public void onClick(DialogInterface dialog, int which) 
            {
                checkIn(et.getText().toString());
            }
        });

        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() 
        {
            @Override
            public void onClick(DialogInterface dialog, int which) 
            {
                dialog.dismiss();
            }
        });

       builder.show();
    }

//function that receives EditText's value...
private void checkIn(String value)
{
   ......

   //do what ever you want to do with value string.....

   ......
}

您只需修改并设置您试图实现的AlertDialog的新布局。有几个示例说明了如何覆盖AlertDialogs的布局以供查看。