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