禁用,重新启用,触摸时不显示软键盘

发布于 2024-11-30 12:51:21 字数 781 浏览 2 评论 0原文

看一下这个例子:

public class TestEditSoftKbdActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    findViewById(R.id.editText1).setFocusable(false);
    findViewById(R.id.editText1).setClickable(false);
    findViewById(R.id.editText1).setEnabled(false);

    findViewById(R.id.editText1).setFocusable(true);
    findViewById(R.id.editText1).setClickable(true);
    findViewById(R.id.editText1).setEnabled(true);

    findViewById(R.id.editText1).invalidate();
    findViewById(R.id.editText1).requestLayout();
}

}

在这一系列调用之后,编辑文本视图在被触摸时将不再弹出其软输入法:(

有人可以解释一下这里出了什么问题吗?

Take a look at this example:

public class TestEditSoftKbdActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    findViewById(R.id.editText1).setFocusable(false);
    findViewById(R.id.editText1).setClickable(false);
    findViewById(R.id.editText1).setEnabled(false);

    findViewById(R.id.editText1).setFocusable(true);
    findViewById(R.id.editText1).setClickable(true);
    findViewById(R.id.editText1).setEnabled(true);

    findViewById(R.id.editText1).invalidate();
    findViewById(R.id.editText1).requestLayout();
}

}

After this sequence of calls the edit text view would no longer pop up its soft input method upon being touched :(

Could someone explain what is going wrong here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

滥情空心 2024-12-07 12:51:21

如果您想关闭文本视图的软键盘,请点击此链接。这是为您提供的解决方案。但您需要定义自己的 TextView 才能做到这一点。他建议使用;

public class NoImeEditText extends EditText {
    public EditTextEx(Context context, AttributeSet attrs) { 
       super(context, attrs);     
    }      
    @Override      
    public boolean onCheckIsTextEditor() {   
        return false;     
    }        
} 

希望它有效。

If you want to close soft keyboard for your text view follow this link. Here is a solution for you. But you need to define your own TextView to do that. He suggests using;

public class NoImeEditText extends EditText {
    public EditTextEx(Context context, AttributeSet attrs) { 
       super(context, attrs);     
    }      
    @Override      
    public boolean onCheckIsTextEditor() {   
        return false;     
    }        
} 

Hope it works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文