好的,这是我的情况。我有一个AutoCompleteTextView,它必须有一个OnKey的监听器,这很好,但我只想使用onKey 如果那个“keyed”的视图是实际的文本字段,而不是其中一个自动完成选择。如果选择被命中,我将在onItemClickedListener中处理它。所以,我的代码看起来像这样:
public class MyFragment extends Fragment实现了OnKeyListener {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Log.i(LOG_TAG, "Fragment Inflated");
View view = inflater.inflate(R.layout.my_layout, container, false);
final AutoCompleteTextView autoComplete = (AutoCompleteTextView)v.findViewById(R.id.my_autocomplete_id);
autoComplete.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
//just setting the text from the selection
String s = adapterView.getItemAtPosition(i).toString();
autoComplete.setText(s);
}
});
return view;
}
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(v instanceof AutoCompleteTextView)
{
AutoCompleteTextView av = (AutoCompleteTextView)v;
//I need to be able to tell if this is the text field or a selection
// from the autocomplete!!
}
}
OnKey在itemclicked之前触发,这是预期的(不要以为我可以改变它)所以我真正需要能够做的,正如我上面所说,可靠地检测编辑文本区域是否“键入”或如果是选择。
我已经用Google搜索并检查了调试器中的AutoCompleteTextView对象,但是我没有看到任何表明我需要的东西。
有没有人对我如何处理这个有任何建议?正如我所说,我必须能够处理onKey以查看被单击的文本区域。如果我能以某种方式在OnKey之前点击处理selectedItem我可以设置一个标志,但我再也不认为这是可能的。任何建议将非常感谢。非常感谢!
答案 0 :(得分:0)
所以我不喜欢回答我自己的问题,但我找到了答案,不知道我是如何错过它的: 如果您在文本字段中,AutoCompleTextView.getListSelection()将返回-1。