2014-11-15 92 views
0

当我开始我的活动时,getwindow()调用很好。我想要实现的是输入一些文本,点击按钮重置edittext然后隐藏键盘。真正的代码更复杂,但是我想要做的事情。 我试图将调用getwindow()放在按钮调用中,但它不隐藏键盘。 我已经读过不同的线程,所以我尝试了另一种方法管理解决方案,但我得到了相同的结果。每次使用Edittext时隐藏键盘

你推荐我做什么?

谢谢!

公共类MyActivity延伸活动{

@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(""); 
     } 
    }); 

} 

回答

2

使用InputMethodManager ANS它设置为您的布局。

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); 

这将在特定布局

所有edittexts工作,对于一个特定的编辑文本,只需使用这两条线是这样的:

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); 
+0

我以为我哈哈d试过了。有用。 – narb

+0

非常感谢Hirak! – narb

+0

很高兴我能帮上忙。将答案标记为正确,它将帮助其他人以同样的问题和我的名誉:P .....开心的编程 –