我需要使用EditText字段的内容来限制listView中(匹配)条目的数量。对于每个额外的击键,需要进行新的更有限的listView条目选择。我成功地覆盖了onKey处理程序:
public class MyFragment extends Fragment implements OnKeyListener {
...
public View onCreateView(...
editText = (EditText) rootView.findViewById(R.id.myEditText);
editText.setOnKeyListener(this);
...
}
@Override
public boolean onKey(View view, int keyCode, KeyEvent event) {
...
handleListViewBehavior();
}
缺点是我需要自己实现EditText的行为。
我能做什么,所以我可以自己处理ListView,但EditText会处理它自己的行为。
提前致谢!
答案 0 :(得分:0)
尝试调用超类的onKey()
作为方法中的第一件事,然后应用您想要的任何其他操作handleListViewBehavior()
。
@Override
public boolean onKey(View view, int keyCode, KeyEvent event) {
super.onKey(view, keyCode, event); <-------
handleListViewBehavior();
}
请注意,我没有对此进行过测试,但我认为它可以帮助你。
答案 1 :(得分:0)
onKey方法是错误的。使用早期的Stackoverflow解决方案可以解决我的问题:
EditText保持它的行为,但您仍然可以检测afterTextChanged方法中的击键。
感谢人们的建议!
答案 2 :(得分:0)
只是返回false,停止“吃”事件。
public boolean onKey(View view, int keyCode, KeyEvent event) {
handleListViewBehavior();
return false;
}
有关解释,请阅读documentation。
Returns
True if the listener has consumed the event, false otherwise.