Android 多个onFocusChange接收
有一段时间我一直在安静地处理一个充满EditText的listview,如果不做一些棘手的事情,我就无法找到完成任务的方法 我使用了一个最小化的项目来简化讨论 我有一个用来询问信息的列表视图。布局部分非常基本: 活动\u main.xmlAndroid 多个onFocusChange接收,android,listview,focus,Android,Listview,Focus,有一段时间我一直在安静地处理一个充满EditText的listview,如果不做一些棘手的事情,我就无法找到完成任务的方法 我使用了一个最小化的项目来简化讨论 我有一个用来询问信息的列表视图。布局部分非常基本: 活动\u main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.beuvelet.myapplication.MainActivity">
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="beforeDescendants"/>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="0dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:gravity="center_vertical|center">
<TextView
android:id="@+id/textQuestion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|left"
android:layout_marginLeft="10dp"
android:text="texte"
android:textSize="23sp"/>
<LinearLayout
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|right"
android:gravity="center_vertical|right">
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:minWidth="125dp"/>
</LinearLayout>
</LinearLayout>
我想在失去editText的焦点时验证它的值
问题是,每次我在editText上clic时,都会得到以下日志:
I/System.out: hasFocus
I/System.out: noFocus
I/System.out: hasFocus
I/System.out: noFocus
I/System.out: hasFocus
I/System.out: noFocus
I/System.out: hasFocus
每次它都会通过OnFocusChangeListener 7次。如果侦听器中有一些noFocus事件的验证方法,则可以连续调用3次
为什么有这么多电话
我可以使用变量,保存一些状态,但在我的情况下这会有点棘手,我更愿意尝试理解这种行为
谢谢你的阅读。
(sry代表蹩脚英语:p)在我的棒棒糖案例中,它在每次按键时都会在列表视图中的所有编辑文本上运行。所以它多次调用焦点更改。这里不是最佳解决方案:。
I/System.out: hasFocus
I/System.out: noFocus
I/System.out: hasFocus
I/System.out: noFocus
I/System.out: hasFocus
I/System.out: noFocus
I/System.out: hasFocus