【问题标题】:Hide keyboard each time I'm using an Edittext每次我使用 Edittext 时隐藏键盘
【发布时间】:2014-11-15 17:41:40
【问题描述】:

当我开始我的活动时,getwindow() 调用运行良好。我想要实现的是输入一些文本,点击按钮重置编辑文本,然后隐藏键盘。真正的代码更复杂,但这是我想做的。 我试图将调用 getwindow() 放在按钮调用中,但它并没有隐藏键盘。 我已经阅读了不同的线程,所以我尝试了其他方法管理器解决方案,但我得到了相同的结果。

你建议我做什么?

谢谢!

公共类 MyActivity 扩展 Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);

    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

    final Button next = (Button) findViewById(R.id.button);
    next.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
            EditText etxt = (EditText) findViewById(R.id.edittxt);
            etxt.setText("");
        }
    });

}

【问题讨论】:

    标签: android


    【解决方案1】:

    使用 InputMethodManager 并将其设置为您的布局。

    LinearLayout mainLayout; \\or whatever layout u have
    mainLayout = (LinearLayout)findViewById(R.id.myLinearLayout);
    
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(mainLayout.getWindowToken(), 0);
    

    这将适用于该特定布局中的所有编辑文本

    对于特定的编辑文本,只需像这样使用这两行:

    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
    

    如果您的 edittext 是在活动开始时获得焦点的第一件事,那么您可以通过在 onCreate 中输入此代码来隐藏键盘:

    this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    

    【讨论】:

    • 很高兴我能帮上忙。将答案标记为正确,它将帮助有同样问题的其他人和我的声誉:p.....快乐编程
    • 我是 stackoverflow 的新手。我想我做到了。标记变绿了:)
    猜你喜欢
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    相关资源
    最近更新 更多