2014-11-15 3 views
0

내 활동을 시작할 때 getwindow() 호출이 잘 작동합니다. 내가 원하는 것은 텍스트를 입력하고 버튼을 눌러 편집 문구를 재설정 한 다음 키보드를 숨기는 것입니다. 실제 코드는 더 복잡하지만, 내가 원하는 것은 이것입니다. 단추 호출 안에 getwindow()를 호출하려고했지만 키보드를 숨기지 않았습니다. 다른 스레드를 통해 읽었으므로 다른 methodmanager 솔루션을 시도했지만 동일한 결과가 나타납니다.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); 

이것은 단지 다음과 같이이 2 개 라인을 사용, 특정 편집 텍스트의 특정 레이아웃

의 모든 edittexts을 위해 작동합니다

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

을 그리고 당신 글고 치기가 처음 인 경우 액티비티가 시작될 때 포커스를 얻은 다음 onCreate에 다음 코드를 삽입하여 키보드를 숨길 수 있습니다.

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

나는 d 시도. 그것은 작동합니다. – narb

+0

많은 분들께 감사드립니다! – narb

+0

기꺼이 도와 드리겠습니다. 답변을 올바른 것으로 표시하면 다른 사람들이 동일한 proble 및 평판을 얻는 데 도움이됩니다. p ..... happy programming –