2012-05-11 3 views
1

Я новичок в разработке приложений для Android, но у меня есть знания программирования в iOS. Вчера я начал изучать Андриод. Я хочу скрыть клавиатуру, когда я нажимаю в любом месте вне EditText. Но я нашел код, чтобы скрыть клавиатуру, которая имеет следующий вид:Скрытие клавиатуры в Android

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

Затем я попробовал следующий в моем проекте, но я не мог скрыть клавиатуру.

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.login); 

    txtUserName = (EditText)findViewById(R.id.txtUserName); 

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

Я сомневаюсь, что мне нужно добавить любые сенсорные элементы или клавиатуры. Пожалуйста, помогите мне.

+0

Если вы хотите идти в любом месте за пределами EditText затем нажмите кнопку назад, если клавиатура открыта. Вам не нужно писать код для этого. –

ответ

0

Ваш вопрос такой же, как показано ниже, он может вам помочь.

http://3.bp.blogspot.com/-aOmfANlocYI/Tm9gJvI7s1I/AAAAAAAAAEA/yBEfcpoGX4U/s1600/3.JPG

сделать это правильно, если это действительно помогло вам.

+0

Подробнее см .: http://dj-android.blogspot.in/2011/09/how-hide-keyboard-in-your-apps.html –

+0

Теперь он работает. Спасибо, Дхавал. –

2

Я сделал это в onCreate(), и это помогло:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 
0
eidttext.setOnFocusChangeListener(new View.OnFocusChangeListener() { 

     @Override 
     public void onFocusChange(View v, boolean arg1) { 
      // TODO Auto-generated method stub 
      if (!arg1) { 
       hideKeyboard(); 

      }   

     } 

     private void hideKeyboard() { 
      // TODO Auto-generated method stub 
      InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
      inputManager.hideSoftInputFromWindow(confpassword 
        .getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 

     } 
    }); 
+0

Привет, У меня есть 2 вопроса относительно приведенного выше фрагмента кода. 1. Как связать OnFocusChangeListener с моим eidttext? 2. Где (в частности) этот код входит в мою деятельность? Внутри моей extends Activity ... после продолжения Activity ... где oh где? –

+0

2) внутри метод oncreate – himanshu

+0

Я дал код, как вы предоставили, но его не получилось скрыть. «TxtUserName.setOnFocusChangeListener (новый View.OnFocusChangeListener() { общественного недействительными onFocusChange (View v, логическое arg1) { если (arg1) {hideKeyboard (!);}} частная пустота hideKeyboard() { InputMethodManager InputManager = (InputMethodManager) getSystemService (Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow (txtUserName.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);}}); " Я пропустил что-либо в вышеуказанном коде? –

0

Вот мой код для убедившись, что клавиатура никогда не показывает на коробку EditText. Возможно, вы сможете адаптировать его для своего дела.

protected void hideKeyboard(EditText et){ 
    et.setKeyListener(null); 
} 
0

Это поможет вам:

mInputMethodManager.hideSoftInputFromWindow(zipCodeEdt.getWindowToken(), 0); 
Смежные вопросы