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