2017-09-05 7 views
7

मेरे पास एक संपादन टेक्स्ट है जिसे मैं फ़ॉर्म में अन्य नियंत्रणों से स्वचालित रूप से भरना चाहता हूं, और साथ ही उपयोगकर्ता को अपनी सामग्री को बदलने की अनुमति देता हूं, हालांकि उपयोगकर्ता को ऐसा करने से हतोत्साहित करना पड़ता है।अनफोक्यूबल तत्व, स्पर्श पर ध्यान केंद्रित

इसलिए मैंने इस नियंत्रण को ध्यान केंद्रित करने के लिए सेट नहीं किया है, इसलिए जब आप कार्रवाई दबाते हैं अगला यह अगले नियंत्रण पर चलता है। हालांकि यदि आप संपादन टेक्स्ट पर क्लिक करते हैं, तो मैं उपयोगकर्ता को अपनी सामग्री बदलने की अनुमति देना चाहता हूं। नतीजा यह है कि जब आप क्लिक करें, आप संपादित कर सकते हैं, लेकिन अचानक अगले नियंत्रण (एक AutoCompleteTextView) अब और फ़ोकस करने योग्य नहीं है

mNameEditText.setFocusable(false); 
     mNameEditText.setFocusableInTouchMode(false); 
     mNameEditText.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mNameEditText.setFocusableInTouchMode(true); 
       mNameEditText.requestFocusFromTouch(); 
       mNameEditText.setFocusable(true); 
      } 
     }); 

हालांकि यह बहुत ही अजीब तरह से व्यवहार करती है,:

यह मैं क्या किया है! वास्तव में यह लग रहा है फोकस पाठ संपादन पर रहता है और इतने की तरह, एक ही समय में autocompletetextview को जाता है की तरह:

enter image description here

मैं इसे कैसे ठीक कर सकते हैं? जब पाठ संपादन दृश्य को छुआ है:

+0

"mNameEditText.requestFocusFromTouch();" को बदलने का प्रयास करें; "mNameEditText.requestFocus();" अपने श्रोता के अंदर। – MTCZiomal

उत्तर

1
  • अपने पाठ दृश्य संपादित की एक उप वर्ग
  • अपने ध्यान में रखते हुए इसका इस्तेमाल
  • false
  • करने के लिए अपने enabled प्रॉपर्टी सेट अपने उपवर्ग के भीतर स्पर्श संचालकों को अधिलेखित बनाओ , अब दृश्य को सक्षम करें और इसे फोकस करें। जब फोकस खो जाता है, तो पाठ संपादन दृश्य को फिर से अक्षम करें। उपclass में सब कुछ करो।
  • शैली पाठ संपादन दृश्य ठीक से इतना है कि उपयोगकर्ता धारणा है कि यह संपादन योग्य
0

है आप स्वत: ध्यान केंद्रित परिवर्तन कुछ दृश्यों को छोड़ करना चाहते हैं, तो आप nextFocus* विशेषताओं के संयोजन का उपयोग कर सकते हैं।

कुछ की तरह:

<EditText 
    android:id="@+id/txt1" 
    android:imeOptions="actionNext" 
    android:nextFocusForward="@+id/txt3" 
    android:nextFocusDown="@+id/txt3" 
    ... /> 

<!-- skipped view --> 
<EditText 
    android:id="@+id/txt2" 
    android:imeOptions="actionNext" 
    ... /> 

<EditText 
    android:id="@+id/txt3" 
    android:imeOptions="actionNext" 
    android:nextFocusUp="@id/txt1" 
    ... /> 

nextFocusForwardactionNext के लिए इस्तेमाल किया जाता है। मेरा मानना ​​है कि अन्य विशेषताएं गैर स्पर्श मोड (जैसे हार्डवेयर कीबोर्ड के साथ) में उपयोगी होती हैं

+0

यह काम करता है लेकिन फिर मुझे इसे हर नियंत्रण पर रखना होगा और मेरे पास फॉर्म पर अगला तत्व होगा, अन्यथा क्लिक करने पर, यह वापस – MichelReap

+0

छोड़ दिया जाएगा, यह अजीब बात है, मैंने 5 संपादन टेक्स्ट के साथ परीक्षण किया , (एपीआई 21 डिवाइस) और यह अपेक्षित व्यवहार करता है। यानी 1 से 3 तक एकल 'अगली फोकस फॉरवर्ड' के साथ, फोकस चक्र 1 -> 3 -> 4 -> 5 -> 1. क्या आपके पास एक और जटिल लेआउट है, (लंबवत और क्षैतिज फोकस चाल के साथ) ? – bwt

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