我有一个带有片段的活动...在这个片段中,我在EditText中使用双向DataBing。此EditText绑定到对象的Double属性,因此,我必须实现一个InverseMethod来转换String-> Double和Double-> String ...
在我的EditText中,我配置了 android:selectAllOnFocus =“ true” ,并且还将其强制应用于片段的onCreateView方法: edQtd.selectAll() < / p>
问题是,当出现片段时,EditText成为焦点,但未选择文本,而是光标在第一个数字之前...
我希望它与所有选定的文本一起显示...
尝试连接而不是使用inverse方法,只是连接一个空的String,但是结果是相同的...
从我看到的对其进行调试的角度来看,生成的绑定类在片段创建后设置了文本(在我手动调用 edQtd.selectAll()之后),删除了选择...
有什么办法解决吗?
编辑: 现在,我解决了将TextChangedListener添加到EditText的问题,仅在第一次更改文本时,我才选择所有文本:
edQuantidade.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
if(getSelectAllEdQtdText()) {
edQuantidade.selectAll();
setSelectAllEdQtdText(false);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
});
答案 0 :(得分:0)
在版式的EditText上添加以下属性。
{
"size": 0,
"aggs": {
"length": {
"terms": {
"script": {
"source": "params._source.vendors.length",
"lang": "painless"
}
}
}
}
}
然后从代码中删除<EditText
android:focusable="true"
android:focusableInTouchMode="true"
android:selectAllOnFocus="true"
/>
。
修改
因为没有一种解决方案有效。这将起作用,因为这将在延迟后触发selectAll。在绑定中设置模型后添加。
edQtd.selectAll()