Android 隐藏虚拟键盘,但有一个功能齐全的光标

Android 隐藏虚拟键盘,但有一个功能齐全的光标,android,virtual-keyboard,android-virtual-keyboard,Android,Virtual Keyboard,Android Virtual Keyboard,我目前正在开发一个计算器应用程序,其中我制作了一个自定义键盘,并希望隐藏虚拟键盘。我已经找到了可以隐藏它的解决方案,但是光标也被隐藏了。我想要的功能与com.android.calculator2应用程序相同。我已经看过了它的源代码,但是我仍然不能让它工作 我想你弄错了。有一个更简单的解决方案(也更明显) 使编辑文本不可编辑 绑定到代码中的编辑文本(findViewById) 在按钮中,获取文本并添加到当前字符串,然后显示它 例如 假设您按下了“1”按钮 在one.setOnclickListe

我目前正在开发一个计算器应用程序,其中我制作了一个自定义键盘,并希望隐藏虚拟键盘。我已经找到了可以隐藏它的解决方案,但是光标也被隐藏了。我想要的功能与com.android.calculator2应用程序相同。我已经看过了它的源代码,但是我仍然不能让它工作

我想你弄错了。有一个更简单的解决方案(也更明显)

  • 使编辑文本不可编辑
  • 绑定到代码中的编辑文本(findViewById)
  • 在按钮中,获取文本并添加到当前字符串,然后显示它 例如

    假设您按下了“1”按钮

    one.setOnclickListener()中,执行以下操作:

    String S=EditText.getText()+"1"; 
    EditText.setText(s);
    
    编辑:

    如果只想在保持光标的同时隐藏键盘,请尝试以下代码:

    EditText editText = (EditText)findViewById(R.id.edit_text);
    editText.setOnTouchListener(new OnTouchListener() {
    
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            v.onTouchEvent(event);
            InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
            if (imm != null) {
                imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
            }                
            return true;
        }
    });
    

    你的“键盘”是按钮的集合吗?或者你是否编写了正确的键盘?@harvey_slash这是一组按钮。如何创建正确的键盘?我不认为com.android.calculator2应用程序使用了一个“合适的”键盘。所以你可以将clicklisteners设置为按钮,对吗?@harvey_slash我的问题不是让按键工作,而是让默认键盘隐藏起来。(所以两个键盘不显示,我的和默认的)我想你误解了。我仍然希望光标显示在编辑文本中,以便您可以更改输入的位置。我已编辑了我的答案。它应该使edittext按您希望的方式运行。再见,汉克斯!这很管用,但当长时间按下时,键盘会上下移动。这可以解决吗?试试这个:设置onlongClicklistener,并在存根中返回true。