我有一个EditText
用作. 我正在尝试访问焦点/失去焦点事件,但由于某种原因,每个焦点都会触发多次。这里发生了什么?View
ListView
// 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
set to调用多个事件true
,但为什么还有false
s,触发Un Clicked
日志?
编辑:此外,每当我ListView
向上和向下滚动,移入EditText
和移出视图时,它也会调用这些事件。我是否使用了错误的侦听器类型?