检测文本字段或选择上是否有AutoCompleteTextView键

时间:2013-10-17 19:35:27

标签: java android autocompletetextview

好的,这是我的情况。我有一个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我可以设置一个标志,但我再也不认为这是可能的。任何建议将非常感谢。非常感谢!

1 个答案:

答案 0 :(得分:0)

所以我不喜欢回答我自己的问题,但我找到了答案,不知道我是如何错过它的: 如果您在文本字段中,AutoCompleTextView.getListSelection()将返回-1。