2014-04-04 2 views
10

मेरे पास एक हैंडलर है जो TextWatcher है और मुझे नहीं पता कि View किसने टेक्स्ट बदल दिया है।टेक्स्टवॉचर विधि संदर्भ में दृश्य कैसे प्राप्त करें?

TextWatcher handler = new TextWatcher() { 

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

    } 

    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
     oldText = s.toString(); 
    } 

    @Override 
    public void afterTextChanged(Editable s) { 
     //v.setText("afterTextChanged"); 
    } 
}; 

नोट टिप्पणी की हिस्सा है, वह यह है कि मैं क्या चाहते हैं, EditText तो ईवेंट को ट्रिगर है से View प्राप्त करने के लिए, के बाद पाठ बदल गया था पाठ बदलने के लिए:

यहाँ मेरी हैंडलर है।

के अंदर .setText() विधि के बाद मैं ईवेंट के बाद इस .setText() विधि तक कैसे पहुंच सकता हूं? (OnClick ईवेंट की तरह उस दृश्य v है)

+2

वर्ग TW TextWatcher {सार्वजनिक TW (देखें v) {... – pskink

+0

लागू करता है मैं वास्तव में समझ में नहीं कर सकते हैं। लेकिन मुझे "विचार" मिला, क्या आप एक उदाहरण वर्ग पोस्ट कर सकते हैं जिसमें मैं इसे 'व्यू वी' युक्त कार्यान्वित कर सकता हूं? –

उत्तर

15
public static class MyTextWatcher implements TextWatcher { 

    private EditText mEditText; 

    public MyTextWatcher(EditText editText) { 
     mEditText = editText; 
    } 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 
     oldText = mEditText.toString(); 
    } 
    .... 
} 

के साथ जोड़ें:

mFirstEditText.addTextChangedListener(new MyTextWatcher(mFirstEditText)); 
+1

'TextFormatter'' MyTextWatcher 'नहीं होना चाहिए? –

+0

यह काम किया! लेकिन मुझे इसे संकलित करने के लिए 'TextFormatter' को 'MyTextWatcher' में बदलने की आवश्यकता थी। –

+0

दरअसल, इसे बदल दिया। –

संबंधित मुद्दे