0

我有一个用于过滤列表的edittext。我的问题是,当我点击edittext时,键盘没有出现,当我按下回车键时,它就不会关闭。

我正在使用以下代码进行过滤:

adapt = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,veik);
    lv.setTextFilterEnabled(true);
ed.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                // TODO Auto-generated method stub

            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
                // TODO Auto-generated method stub

            }

            @Override
            public void afterTextChanged(Editable s) {
                // TODO Auto-generated method stub
                // veikali.this.veik.getFilter().filter(s);
                 adapt.getFilter().filter(s);
            }
        });

          ed.setClickable(true);

你能告诉我如何在单击edittext时显示键盘并在按Enter时隐藏它吗?

4

3 回答 3

1

如果您使用的是触屏手机,则在触摸编辑文本时会出现软键盘。至于查询的第二部分,请尝试以下操作:

ed.setOnKeyListener(new View.OnKeyListener()
    {

        @Override
        public boolean onKey(View editView, int keyCode, KeyEvent event)
        {
            Context mContext = MyClass.this;
            if( keyCode == KeyEvent.KEYCODE_ENTER ){
                InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(ed.getWindowToken(),0);
                return true;
            }
            return false;
        }
    })
于 2012-06-11T13:37:32.807 回答
1

这似乎是很多额外的工作。我不记得必须为我的编辑文本提供此功能,因为它应该默认执行此操作。

你确定edittext可以聚焦并且没有某种类型的视图阻止它吗?如果您在列表视图中使用,您可能需要在 ListView 中查看此线程Focusable EditText

于 2012-06-11T13:43:12.897 回答
0

作为简单的解决方案,尝试在 AndroidManifest.xml 中为活动标签添加以下属性:

android:windowSoftInputMode="stateVisible|adjustResize"

检查此文档。

于 2014-10-17T23:46:07.757 回答