Android编辑框焦点

时间:2012-08-18 04:34:27

标签: android focus editbox

NewBie Androider在这里。

我正在编写一个代码,用户在一个编辑框中只输入一个ALPHABET,然后焦点移动到另一个。如果它不是Alphabet,则光标将保留在编辑框1  如果用户删除该字符,则光标将保留在同一编辑框中。

此外,如果用户点击其中包含某些字符的编辑框,则单击时应将其删除。

以下是我的尝试

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_play);
          final EditText et1 = (EditText)findViewById(R.id.box1);
          final  EditText et2 = (EditText)findViewById(R.id.box2);

        et1.addTextChangedListener(new TextWatcher()
        {
            public void afterTextChanged(Editable s){
            }
            public void beforeTextChanged(CharSequence s,
            int start, int count, int after){

            }
            public void onTextChanged(CharSequence s,
            int start, int before, int count)
            {
                if(isAlphabet(et1.getText().toString())){
                    et2.requestFocus();
                }else{
                    et1.setText("");
                    et1.requestFocus();
                }
            }
        });
    }

此外,我有四个编辑框,我想专注于下一个空框...任何建议实现此逻辑。

谢谢

2 个答案:

答案 0 :(得分:1)

首先,因为您希望您的用户只输入字符而不是数字,然后提供android:inputtype="text",以便编辑文本只能获取文本而不是数字,然后提供android:maxLength="1",以便只能输入一个字符。< / p>

当点击ediitext以删除/刷新edittext中的内容时,您必须实现edittext的onCLick()方法并执行:edittext.setText("")。您还应该通过.requestFocus()

关注您希望焦点所在的编辑文本

答案 1 :(得分:1)

在layout.XML中的每个edittext中只需使用

  

机器人:的inputType = “文本”

android:digits="abcdefghijklmnopqrstuvwxyz."