Android 确保EditText只返回单个小写字母

Android 确保EditText只返回单个小写字母,android,input,filter,android-edittext,Android,Input,Filter,Android Edittext,我将把我的老版Hangman java游戏移植到android上,准备在一月份进行编程决赛。我已经让它的大部分工作,但我发现我的不做任何检查无效字符。无效字符基本上是除小写字母以外的所有字符。我一直在考虑手动将所有有效字符输入一个数组,并根据该数组检查每个输入。有更简单的方法吗 以下是从适当的EditText捕获输入的代码: final EditText guessedLetter = (EditText) findViewById(R.id.LetterInput); final Button

我将把我的老版Hangman java游戏移植到android上,准备在一月份进行编程决赛。我已经让它的大部分工作,但我发现我的不做任何检查无效字符。无效字符基本上是除小写字母以外的所有字符。我一直在考虑手动将所有有效字符输入一个数组,并根据该数组检查每个输入。有更简单的方法吗

以下是从适当的EditText捕获输入的代码:

final EditText guessedLetter = (EditText) findViewById(R.id.LetterInput);
final Button enterGuess = (Button) findViewById(R.id.GuessButton);
      enterGuess.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
            String guess = guessedLetter.getText().toString(); //Save text to a string
            guessedLetter.setText(""); //Clear EditText after input has been saved to a String
            editor.putString(GAME_LOGIC_GUESS, guess);
            editor.commit();
            Log.i(GAME_DEBUG, "Guess: " + guess + " parsed to guess()");
            guess();
            checkWin();
            updateDisplay();
            }
            }});

再次感谢

使用如何,或者您可能希望首先使用TextView的setKeyListener方法设置KeyListener。然后,您将覆盖设置的KeyListener的onKeyDown方法并侦听输入。如果键入的不是字符(即:a-Z),那么您将抛出输入并取消事件。如果键入的是字符,则应先将字符转换为小写,然后再将其添加到文本框中

编辑-

只是注意到你没有在按键时这样做,而是用户必须点击“Ok”。这让你的生活更轻松

当用户按下“Ok”键时,检查文本是否为有效字符(即:只有一个字符且介于a-Z之间)。如果不是,对用户大喊大叫。如果是,请检查它是否为小写,或者自己将其转换为小写

)


)

我发现对于这个特定的问题,最简单的解决方案是只填充有效字符的数组。因此,我没有将无效字符和符号列入黑名单,而是将相对较少的有效字符和符号列入白名单

以下是阵列(如果将来有人需要):

final String[] allowedChars = {"a", "b", "c", "d", "e", 
                "f", "g", "h", "i", "j", 
                "k", "l", "m", "n", "o", 
                "p", "q", "r", "s", "t", 
                "u", "v", "w", "x", "y", 
                "z"};
使用循环进行比较:

for(int n = 0; n < allowedChars.length; n++){
        if(allowedChars[n].equalsIgnoreCase(guess)){
        //Game logic here
        }}
for(int n=0;n
我不确定应该在哪里使用这个。你能具体说明一下吗?