在AlertDialog中需要输入限制

时间:2014-05-20 17:59:54

标签: android input textview alertdialog restriction

这是我的第一个问题。 我正在创建一个对话框,在游戏菜单中输入玩家名称,但是想要限制可能的字符(只有字母和数字,如果不可能,至少排除返回),并且如果字段是,则阻止按下确定按钮空的,但我无法弄清楚如何做到这一点。还有一种方法可以在返回ok时设置默认操作吗?我知道许多应用程序利用它来加快输入速度。这就是我所拥有的:

public String tmPlayerName;

...

public void playerDialog() {
    dialogOpen = true;
    AlertDialog.Builder alert = new AlertDialog.Builder(this);
    alert.setTitle("Change player");
    alert.setMessage("Enter player name (cannot be empty)");
    final EditText input = new EditText(this);
    input.setText(tmPlayerName);
    input.
    alert.setView(input);
    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            tmPlayerName = input.getText().toString();
            }
        }
    });
    alert.setNegativeButton("Cancel",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                }
            });

    alert.show();
}

编辑:该应用程序是使用Android 4.0构建的,如果有任何帮助,则使用Google Play服务。

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式与文本输入进行比较:

String reg = "^[a-zA-Z0-9]*$";

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


            alert.setTitle("Change player");
            alert.setMessage("Enter player name (cannot be empty)");
            final EditText input = new EditText(this);

            input.setText("test");

            alert.setView(input);
            alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    String tmPlayerName = input.getText().toString();
                    if(tmPlayerName.matches(reg)&&!tmPlayerName.isEmpty()){
                        Log.i("ALERT","Store username -"+tmPlayerName);
                    }else{
                        Toast.makeText(MainActivity.this, "Please put valid username", Toast.LENGTH_LONG).show();
                    }

                }

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

            alert.create().show();

如果要使OK按钮在空时禁用...我的建议是使用自定义对话框。试试这个例子 - http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application