2010-08-02 16 views

cevap

28
txtEdit.setOnTouchListener(new View.OnTouchListener(){ 
    public boolean onTouch(View view, MotionEvent motionEvent) {              
     // your code here.... 
     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);     
     return false; 
    } 
}); 
+3

Teşekkürler, her ne kadar yukarıdaki satırlara ihtiyacım olmamasına rağmen 'false; tuş takımı otomatik olarak belirdi. –

0

Sen EditText bir OnClickListener takılarak bunu yapmak mümkün olmalıdır (Ve mümkünse OS ... tuş takımı görüntüler önce bunu bilmek gerekir). Kullanıcı Arabirimi iş parçacığını OnClickListener ürününüzde engellemekle ilgili endişeleriniz varsa, yeni bir İş Parçacığı oluşturabilir ve işinizi oraya yapabilirsiniz. Ancak, bunu yaparsanız, tuş takımı görünmeden önce işin yapılmasının hiçbir garantisi yoktur.

+0

Yeni bir onFocusChangeListener ekledim, tuş takımını keser ve göstermek için iki kez basılmalıdır. Geçersiz kıldığım zaman, süper veya bir şey aramak için bir yol var mı? Belki de ulaşıyorum ... –

+0

... onClickListener hile yapmıyor btw :) –

+1

Tamam. Şuna bakmayı deneyin ... http://stackoverflow.com/questions/2403632/android-show-soft-keyboard-automatically-when-focus-is-on-an-edittext – iandisme

1
View.OnTouchListener onTouchListener = new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 

      if(event.getAction() == MotionEvent.ACTION_UP){ 

... 


} 
+0

Bu soruya bir cevap gönderdiğiniz için teşekkür ederiz! Yığın Taşması'nda yalnızca kod yanıtları önerilmez, çünkü orijinal posterin (veya gelecekteki okuyucuların) arkasındaki mantığı anlaması zor olabilir. Lütfen, sorunuzu düzenleyin ve kodunuzun açıklamasını ekleyin, böylece diğer kişiler cevabınızdan yararlanabilir. Teşekkürler! –

0

Az ayrıntı

aynı Mathias Conradt's yaklaşım, ama KOTLIN kullanarak: Eğer EditText görünümü dokunduğunuzda klavye gösterilen beri

txtEdit.setOnTouchListener({ view, motionEvent -> 
    // your code here.... 
    false 
}) 

Bu çizgi getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); gereksizdir.