दिलचस्प पोस्ट
php अनुलग्नक के साथ ई-मेल भेजें जावास्क्रिप्ट फ़ाइल के माध्यम से मैं एक निर्देशिका में सभी जावास्क्रिप्ट फ़ाइलों को कैसे शामिल कर सकता हूं? पायथन आयात त्रुटि: 'कोई मॉड्यूल नाम' मौजूद नहीं है जांचें कि क्या कोई सरणी खाली है सूची से ट्यूपल बनाने का कोई तरीका है (बिना कोडजनन)? निरीक्षण योग्य संकलन जो संग्रह के तत्वों पर भी नज़र रखता है IIS7 URL रीडायरेक्शन रूट से सब निर्देशिका में स्ट्रिंग के लिए सभी संभावित अतिव्यापी मिलान कैसे प्राप्त करें कैसे matlab में एक सेल के अद्वितीय तत्वों की गणना करने के लिए? पायथन में द्विआधारी खोज (द्विकार) IOS 7 शैली ब्लर दृश्य java.io.StreamCorruptedException: अमान्य स्ट्रीम शीर्षलेख: 7371007 ई पायथन में iteritems ResultSet से JTable को आबाद करने के लिए सबसे सरल कोड मैं थोड़ा नीचे स्क्रॉल करने के बाद div को कैसे छू सकता हूं

जब उपयोगकर्ता ने नरम कीबोर्ड को खारिज कर दिया है तब पता लगा रहा है

मेरे पास मेरे दृश्य में एक संपादन टेक्स्ट विजेट है जब उपयोगकर्ता संपादन टेक्स्ट विजेट का चयन करता है, तो मैं कुछ निर्देश प्रदर्शित करता हूं और नरम कीबोर्ड दिखाई देता है।

मैं एक OnEditorActionListener का उपयोग करने के लिए पता लगाता है जब उपयोगकर्ता ने पाठ प्रविष्टि पूर्ण कर दी है और मैं कीबोर्ड को खारिज कर देता हूं, निर्देशों को छुपाने और कुछ कार्रवाई करने के लिए

मेरी समस्या यह है कि जब उपयोगकर्ता वापस कुंजी दबाकर कीबोर्ड को खारिज कर देता है ओएस कीबोर्ड को खारिज कर देता है, लेकिन मेरे निर्देश (जो मुझे छिपाने की आवश्यकता है) अभी भी दृश्यमान हैं I

मैंने ओकेडाउन को ओवरराइड करने की कोशिश की है, लेकिन ऐसा नहीं लगता है कि जब कीबोर्ड पर कीबोर्ड को खारिज करने के लिए बैक बटन का उपयोग किया जाता है

मैंने EditText विजेट पर एक OnKeyListener सेट करने की कोशिश की है, लेकिन ऐसा लगता नहीं है कि या तो कहें।

जब नरम कीबोर्ड को खारिज किया जा रहा है, तो मुझे कैसे पता लगा सकता है?

Solutions Collecting From Web of "जब उपयोगकर्ता ने नरम कीबोर्ड को खारिज कर दिया है तब पता लगा रहा है"

यह प्रश्न (अभी तक कोई जवाब नहीं और गंभीर दिख रहा है) लगता है कि एक ही सवाल है: एंड्रॉइड में सॉफ्टवेयर कीबोर्ड की दृश्यता कैसे जांचनी है?

मुझे यह करने का एक तरीका पता है। संपादन टेक्स्ट उप-वर्ग और लागू करें:

@Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { // Do your thing. return true; // So it is not propagated. } return super.dispatchKeyEvent(event); } 

आपके कस्टम विचारों का उपयोग करने का एक लिंक यहां दिया गया है (जब आप EditText subclass करते हैं): http://developer.android.com/guide/topics/ui/custom-components.html

जे, आपका समाधान अच्छा है! धन्यवाद 🙂

 public class EditTextBackEvent extends EditText { private EditTextImeBackListener mOnImeBack; public EditTextBackEvent(Context context) { super(context); } public EditTextBackEvent(Context context, AttributeSet attrs) { super(context, attrs); } public EditTextBackEvent(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) { if (mOnImeBack != null) mOnImeBack.onImeBack(this, this.getText().toString()); } return super.dispatchKeyEvent(event); } public void setOnEditTextImeBackListener(EditTextImeBackListener listener) { mOnImeBack = listener; } } public interface EditTextImeBackListener { public abstract void onImeBack(EditTextBackEvent ctrl, String text); } 

मैंने सुपर के फोन पर जय के समाधान पर मामूली बदलाव किया। परमप्रोइम ():

 _e = new EditText(inflater.getContext()) { @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK){ cancelTextInput(); } return super.onKeyPreIme(keyCode, event); } }; 

अद्भुत समाधान, जे, 1!

यह पता लगाने के लिए कि क्या कीबोर्ड दिख रहा है या नहीं, मेरा कस्टम संपादन टेक्स्ट है

 /** * Created by TheFinestArtist on 9/24/15. */ public class KeyboardEditText extends EditText { public KeyboardEditText(Context context) { super(context); } public KeyboardEditText(Context context, AttributeSet attrs) { super(context, attrs); } public KeyboardEditText(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { super.onFocusChanged(focused, direction, previouslyFocusedRect); if (listener != null) listener.onStateChanged(this, true); } @Override public boolean onKeyPreIme(int keyCode, @NonNull KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) { if (listener != null) listener.onStateChanged(this, false); } return super.onKeyPreIme(keyCode, event); } /** * Keyboard Listener */ KeyboardListener listener; public void setOnKeyboardListener(KeyboardListener listener) { this.listener = listener; } public interface KeyboardListener { void onStateChanged(KeyboardEditText keyboardEditText, boolean showing); } } 

सिर्फ एक ऐसा वर्ग बनाएं जो आपके कोड में एडिटेक्स्ट का विस्तार करता है और उस एडिटेक्ट का उपयोग करता है, आपको कस्टम एडिटेक्ट में निम्नलिखित विधि को ओवरराइड करना चाहिए:

 @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { //Here it catch all back keys //Now you can do what you want. } else if (keyCode == KeyEvent.KEYCODE_MENU) { // Eat the event return true; } return false;} 

यहां मुख्य श्रोता के साथ एक समाधान है। मुझे नहीं पता है कि यह क्यों काम करता है लेकिन OnKeyListener काम करता है यदि आप केवल कस्टम रूप से अपने कस्टम संपादन टेक्स्ट पर कीपई पर ओवरराइड करते हैं

SomeClass.java

 customEditText.setOnKeyListener((v, keyCode, event) -> { if(event.getAction() == KeyEvent.ACTION_DOWN) { switch (keyCode) { case KeyEvent.KEYCODE_BACK: getPresenter().onBackPressed(); break; } } return false; }); 

CustomEditText.java

 @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { return super.dispatchKeyEvent(event); }