EditText输入类型不变

时间:2013-10-07 11:50:58

标签: android android-edittext android-alertdialog

我正在显示一个带有编辑文本的对话框,并像这样设置输入类型十进制

**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();
    }
}

请指导我在哪里做错了什么。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:4)

您需要输入类型类和小数标志:

input.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);

答案 1 :(得分:0)

我认为你需要在最后调用dialog.show();

除此之外,我建议您使用:

alert.setPositiveButton代替dialog.getButton(AlertDialog.BUTTON_POSITIVE)