एंड्रॉइड सॉफ्ट कीबोर्ड अक्षरों का पता नहीं लगाया जा रहा है

मेरे ऐप में एक "edittext" है, और जब मैं सॉफ्ट कीबोर्ड पर कुछ अक्षर दबाए जाते हैं तो मैं चीजें करना चाहता हूं। मैंने हर तरह से कोशिश की है और कैसे स्टैक ओवरफ्लो सुझाव देता है, हालांकि अक्षर I.e ए/ए, बी/बी आदि नहीं पता चला है। हालांकि दर्ज करें और डेल करें। लोड पढ़ने के बाद, जाहिर है, मुझे यहां एक उदाहरण के अनुसार, एडिटेक्स्ट क्लास को ओवरराइड करना है, इसलिए मैंने यह किया है। मैं यहां विधि को ओवरराइड कर रहा हूं:

    @Override
    public boolean sendKeyEvent(KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_DOWN
                && event.getKeyCode() == KeyEvent.KEYCODE_A) {
            ZanyEditText.this.setRandomBackgroundColor();

            return false;
        }
        return super.sendKeyEvent(event);
    }

मैंने केलिस्टनर पर मानक संपादन को ओवरराइड करने का भी प्रयास किया है:

txtSMS.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
               //You can identify which key pressed buy checking keyCode value
               //with KeyEvent.KEYCODE_
                if (keyCode == KeyEvent.KEYCODE_DEL) {
                   //this is for backspace
                    Toast.makeText(getApplicationContext(), "Del was pressed", Toast.LENGTH_SHORT).show();
                }
                if (keyCode == KeyEvent.KEYCODE_A) {
                   //this is for backspace
                    Toast.makeText(getApplicationContext(), "A was pressed", Toast.LENGTH_SHORT).show();
                }
                return false;
            }

हालांकि डेल पर दोनों मामलों में कभी पता चला है। मैं वर्णमाला के पात्रों का पता कैसे लगा सकता हूं? वे टेक्स्ट बॉक्स में दिखाई देते हैं ...

धन्यवाद

0

1 उत्तर

मुझे एक समान जारी किया गया था, आपको टेक्स्टवैचर का उपयोग करने की आवश्यकता है और फिर पता लगाएं कि अंतिम अक्षर क्या दर्ज किया जाना चाहिए ('सबसक्वेंस' का उपयोग करके)। डिलीट को निर्धारित करने के लिए उपयोग तर्क दबाया गया था या एक दर्ज किया गया था, उम्मीद है कि इससे मदद मिलती है

नीचे कोड देखें:

editText.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
           //TODO Auto-generated method stub
            //this is the method that detects the last entry below
            String c = s.subSequence(before, before + 1).toString();
            //check for delete
            if (before < s.length()) {
                String c = s.subSequence(before, before + 1).toString();
                //see if a was entererd
                if (c == a) {
                     //a entered

                }
            } else {
                //delete pressed

            }

        }

        @Override
        public void afterTextChanged(Editable s) {
           //TODO Auto-generated method stub

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
           //TODO Auto-generated method stub

        }

    });
0
जोड़ा