Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓关注焦点变化_Java_Android - Fatal编程技术网

Java 安卓关注焦点变化

Java 安卓关注焦点变化,java,android,Java,Android,当用户将焦点从EditText更改为另一项时,我想更新EditText。我想检查EditText的内容,例如,数字是否大于10,如果是,请将其更改为10 我应该怎么做。将setOnFocusChangeListener设置为您的编辑文本 EditText ET =(EditText)findViewById(R.id.yourtextField); ET.setOnFocusChangeListener(new OnFocusChangeListener() { pub

当用户将焦点从EditText更改为另一项时,我想更新EditText。我想检查EditText的内容,例如,数字是否大于10,如果是,请将其更改为10


我应该怎么做。

setOnFocusChangeListener
设置为您的编辑文本

 EditText ET =(EditText)findViewById(R.id.yourtextField);
ET.setOnFocusChangeListener(new OnFocusChangeListener() {
            public void onFocusChange(View arg0, boolean arg1) {

String myText = ET.getText();
//Do whatever

} 
editText.setOnFocusChangeListener(new OnFocusChangeListener() {

            @Override
            public void onFocusChange(View v, boolean hasFocus) {

                if(!hasFocus){
              //this if condition is true when edittext lost focus...
              //check here for number is larger than 10 or not
                    editText.setText("10");
                }
            }
        });

如果有人想在kotlin和数据绑定中这样做,请参考下面的代码

 //first get reference to your edit text 

 var editText:EditText = viewDataBinding.editText 

 // add listner on edit text 

 editText.setOnFocusChangeListener { v, hasFocus ->
        if(!hasFocus)
        {
      if((editText.text.toString().toIntOrNull()>10)
       {// add any thing in this block
         editText.text = "10"
       }
      }
     }

如果你感兴趣的话,我已经在这篇文章中解释过了。去看看吧

下面是利用OnFocusChangeListener的简单代码

    EditText myEditText = findViewById(R.id.myEditText);

    myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if(hasFocus)
            {
              //Do something when EditText has focus
            }
            else{
              // Do something when Focus is not on the EditText
            }
        }
    });

也许在这个线程中:你有你想要的东西。显然是迟到了,但是在这里使用setText会输出警告“GetTextBeforeCursoron inactive InputConnection”