android–ListView项目焦点行为

android–ListView项目焦点行为,第1张

概述我正在尝试创建一个EditText项目的ListView(使用自定义CursorAdapter),这样EditTexts最初看起来是不可编辑的,并且在长时间单击后变得可编辑.然后,用户将编辑EditText内容,EditText将在失去焦点时保存对db的更改.然而,我遇到了一个非常讨厌的行为,阻止我这样做.1)我在XML中将我的E

我正在尝试创建一个EditText项目的ListVIEw(使用自定义CursorAdapter),这样EditTexts最初看起来是不可编辑的,并且在长时间单击后变得可编辑.然后,用户将编辑EditText内容,EditText将在失去焦点时保存对db的更改.然而,我遇到了一个非常讨厌的行为,阻止我这样做.

1)我在XML中将我的EditTexts设置为androID:focusable =“false”和androID:focusableIntouchMode =“false”.

2)我在ListActivity中创建了一个OnItemLongClickListener,它执行以下 *** 作:

public boolean onItemLongClick(AdapterVIEw<?> parent, VIEw vIEw, int position, long ID){    Log.d("NLAc", "longClick called");    EditText et = (EditText) vIEw.findVIEwByID(R.ID.etFoldername);    et.setFocusable(true);    et.setFocusableIntouchMode(true);    return true;}

3)当我在我的适配器中创建视图时,我附加了以下焦点更改侦听器:

public voID onFocusChange(VIEw v, boolean hasFocus) {    if (hasFocus){    EditText et = (EditText)v;    Log.d(TAG, "hasFocus true called " + et.getText());    et.setText("focused");    et.setSelection(et.length());}else{    EditText et = (EditText)v;    Log.d(TAG, "hasFocus false called " + et.getText());    et.setText("unfocused");    et.setFocusableIntouchMode(false);            //Todo Save to DB}

}

会发生什么事情,当我长按第一项时,我在日志中得到以下内容:

longClick调用

hasFocus true名为item1

hasFocus false称为焦点

如果我将对焦线设置删除为false(et.setFocusableIntouchMode(false);)我得到另一个名为unfocused的hasFocus true.
显然事情是这样的:

1)EditText在设置为focusable时获得焦点

2)包含我的ListVIEw的linearLayour失去焦点并在其所有子节点上调用内部unFocus(),包括我的EditText

3)EditText失去焦点

4)EditText获得焦点 – 无论出于何种原因.

这种行为可以防止我在失去焦点或使其无法聚焦时禁用EditText,直到下一次长时间点击通过这是我想要的.
任何人都可以建议我可能会缺少什么?或解释一下这种行为?任何解决方案赞赏

解决方法:

通过在彼此之上使用两个视图,我能够取得一些进展.我正在使用TextVIEw进行无焦点显示,我隐藏它并在长按时显示EditText.但是,在我尝试为VIEwGroups定义的androID:descendantFocusability设置之前,这对ListVIEw的真正奇怪的焦点处理起初并没有真正的帮助.在我将它设置为VIEwGroup.FOCUS_AFTER_DESCENDANTS后,它的行为变得更加可预测,至少对我而言.

总结

以上是内存溢出为你收集整理的android – ListView项目焦点行为全部内容,希望文章能够帮你解决android – ListView项目焦点行为所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1097758.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存