2013-08-14 20 views
10

Programlı olarak odağıma geçtiğim bir EditText var. Ama ne zaman, klavyenin de görünmesini istiyorum (ve o zaman EditText'in odağı kaybettiğinde aşağıya iniyorum). Şu anda, kullanıcının EditText'in zaten odaklanmış olduğunu düşündüğü klavyenin görünmesi için EditText'i tıklaması gerekiyor. ,, EditText'in odağı aldığını göstermek için yumuşak klavyeyi zorlar.

EditText yourEditText= (EditText) findViewById(R.id.yourEditText); 
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT); 

cevap

15

Bu benim ketyboard böyle mi gösteriyorsun.

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT); 

Klavyeyi gizlemek için, aşağıdaki kodu kullanın. Bu yardımcı olur

final InputMethodManager imm =(InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE); 
editText.setOnFocusChangeListener(new OnFocusChangeListener() { 

     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      if(hasFocus){ 
       imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT); 
      }else{ 
       imm.hideSoftInputFromWindow(et.getWindowToken(), 0); 
      } 
      imm.toggleSoftInput(0, 0); 
     } 
    }); 

Umut: et sizin için gitmeli o odak dinleyici dayalı yapabilmek için EditText

InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(getActivity().INPUT_METHOD_SERVICE); 
      imm.hideSoftInputFromWindow(et.getWindowToken(), 0); 
+9

ekleyin. Ama önce EditText'e 'requestFocus()' yapmalı, sonra klavyeyi açmalısınız, tersi sırayla çalışmıyor. @GaborSch yorumu için – gaborsch

+1

1+. Teşekkürler. –

6

klavyeyi göstermek için şu kodu kullanın:

0

için referanstır.

Saygılar! içinde

22
<activity android:name=".YourActivity" 
      android:windowSoftInputMode="stateVisible" /> 

etkinlik için ... Bu dosyayı tezahür

+0

Bu bir işe yarar, teşekkürler.) Durumumda, bir etkinlik açıldığında odaklanır (yukarıdaki yapılandırma manifest dosyasında değildir). Aynı kod ve tasarımın bunu ekleyene kadarki diğer aktivitesi, yukarıda belirtildiği gibi: /. Nedenini anlayamadığım garipti. –

6

set Bunu ekle senin ekran

<activity android:windowSoftInputMode="stateAlwaysVisible" ... /> 

kaybetme klavyeyi gizlemek için EditText kutusunu içeren geldiğinde otomatik olarak klavyeyi pop tezahür odak, EditText için bir OnFocusChangeListener ayarladı. onCreate (In

)

EditText editText = (EditText) findViewById(R.id.textbox); 
OnFocusChangeListener ofcListener = new MyFocusChangeListener(); 
editText.setOnFocusChangeListener(ofcListener); 

bu sınıf Bu gerçekten çalışıyor

private class MyFocusChangeListener implements OnFocusChangeListener { 

    public void onFocusChange(View v, boolean hasFocus){ 

     if(v.getId() == R.id.textbox && !hasFocus) { 

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

     } 
    } 
} 
İlgili konular