我正在显示一个带有编辑文本的对话框,并像这样设置输入类型十进制
**final EditText input = new EditText(context);
input.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);**
如果我使用默认 alert.setPositiveButton 和 setNegativeButton 点击侦听器,则输入类型正常。但是当我使用
时dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener(){}
然后它的输入无法正常工作。 以下是我的代码完整代码
package com.Dialogs;
public class GetSalesTaxPopUp {
Context context;
private AlertDialog dialog;
public void getSalesTax(Context context2){
this.context = context2;
AlertDialog.Builder alert = new AlertDialog.Builder(context);
alert.setTitle("Sales Tax");
alert.setMessage("Enter Tax");
// Set an EditText view to get user input
final EditText input = new EditText(context);
input.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
dialog = alert.create();
dialog.show();
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String salestax = input.getText().toString();
if(!salestax.equals("")){
Toast.makeText(context, salestax, Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(context, "Enter Sales Tax", Toast.LENGTH_SHORT).show();
}
}
});
dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!MyPreferences.getMyPreference("GetSalesTax", context).equals("")){
dialog.dismiss();
}
else
Toast.makeText(context, "Enter Sales Tax First", Toast.LENGTH_SHORT).show();
}
});
// alert.show();
}
}
请指导我在哪里做错了什么。任何帮助表示赞赏。
答案 0 :(得分:4)
您需要输入类型类和小数标志:
input.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
答案 1 :(得分:0)
我认为你需要在最后调用dialog.show();
。
除此之外,我建议您使用:
alert.setPositiveButton
代替dialog.getButton(AlertDialog.BUTTON_POSITIVE)