gpt4 book ai didi

android - 如何使用数据绑定(bind)创建焦点更改监听器

转载 作者:行者123 更新时间:2023-12-04 13:20:15 25 4
gpt4 key购买 nike

我将以下代码用于 EditText 焦点更改事件及其工作,当我点击一个 EditText 到另一个 EditText 但当我们点击时失败在 EditText 之外点击。我已经添加了 focusable="true"和 focusableInTouchMode="true" 但它不起作用。

@BindingAdapter("onFocusChange")
public static void onFocusChange(EditText
text, final View.OnFocusChangeListener
listener) {
text.setOnFocusChangeListener(listener);
}

public class Handler {
public View.OnFocusChangeListener
getOnFocusChangeListener() {
return new
View.OnFocusChangeListener() {
@Override
public void onFocusChange(View
view, boolean isFocussed
{
//Hide Keyboard
}
};
}
}

<data>
<variable name="handler" type="Handler"/>
</data>
<EditText app:onFocusChange="@{handler.OnFocusChangeListener}"/>

最佳答案

如果您像这样编写 Handler 类,它应该可以工作:

public class Handler {

public OnFocusChangeListener onFocusChangeListener = new OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean isFocused) {
//Hide Keyboard
}
};

}

你的布局是这样的:

<layout>

<data>
<variable name="handler" type="Handler"/>
</data>

<EditText
...
app:onFocusChangeListener="@{handler.onFocusChangeListener}"
... />

</layout>

不要忘记在 Fragment 或 Activity 中设置处理程序变量:

binding.setHandler(new Handler())

关于android - 如何使用数据绑定(bind)创建焦点更改监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53850018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com