gpt4 book ai didi

java - Android - ListView EditText 焦点问题

转载 作者:行者123 更新时间:2023-12-02 07:52:09 27 4
gpt4 key购买 nike

我有一个 EditText,用作 ListView 的页脚 View。我正在尝试访问焦点/失去焦点事件,但由于某种原因,每个焦点都会触发多次。这是怎么回事?

// in onCreate

// ...

// the footer
View v = getLayoutInflater().inflate( R.layout.comment_edittext, null );

EditText commentEditText = (EditText)v.findViewById( R.id.comment_edittext );
commentEditText.setOnFocusChangeListener( new OnFocusChangeListener() {

@Override
public void onFocusChange( View v, boolean hasFocus )
{
U.log("View: " + v.getClass().getName().toString() );

if( hasFocus )
{
U.log( "Clicked" );
}
else
{
U.log( "Un Clicked" );
}
}
} );

// add the footer
commentListView.addFooterView( v );

// ...

调出键盘的单次触摸的输出是:

04-11 10:22:17.449: E/004 - X(4576): View: android.widget.EditText
04-11 10:22:17.459: E/004 - X(4576): Clicked
04-11 10:22:17.569: E/004 - X(4576): View: android.widget.EditText
04-11 10:22:17.569: E/004 - X(4576): Un Clicked
04-11 10:22:17.569: E/004 - X(4576): View: android.widget.EditText
04-11 10:22:17.569: E/004 - X(4576): Clicked
04-11 10:22:17.689: E/004 - X(4576): View: android.widget.EditText
04-11 10:22:17.689: E/004 - X(4576): Un Clicked
04-11 10:22:17.709: E/004 - X(4576): View: android.widget.EditText
04-11 10:22:17.709: E/004 - X(4576): Clicked

我可以理解它在 hasFocus 设置为 true 的情况下调用多个事件,但为什么还有 false ,触发未点击日志?

编辑:此外,每当我上下滚动ListView,将EditText移入和移出 View 时,它都会调用这些事件以及。我是否使用了错误的监听器类型?

最佳答案

根据个人经验,ListView 中的 EditText 是一个祸根。由于 View 的回收和渲染方式,焦点的行为很奇怪。我建议以其他方式解决这个问题。其实,如果是评论文本框,一直可见不是更好吗?

示例布局:

  <LinearLayout 
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>

关于java - Android - ListView EditText 焦点问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10109072/

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