आम तौर पर, आप EditText
सामान्य व्यवहार के साथ अधिकतम अनुकूलता चाहते हैं।
तो आप के रूप में उपयोग नहीं करना चाहिए android:focusable="false"
, हाँ, दृश्य अभी ध्यान देने योग्य नहीं होगा जो बुरा लग रहा है। उदाहरण के लिए, बैकग्राउंड ड्रॉबल अपनी "दबाया" स्थिति को नहीं दिखाएगा।
इसके बजाय आपको क्या करना चाहिए:
myEditText.setInputType(InputType.TYPE_NULL);
myEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
}
}
});
इनपुट प्रकार सेट करके TYPE_NULL
, आप सॉफ़्टवेयर कीबोर्ड को पॉप अप करने से रोकते हैं।
OnClickListener
और सेट करके OnFocusChangeListener
, आप यह सुनिश्चित करते हैं कि उपयोगकर्ता द्वारा EditText
फ़ील्ड में क्लिक करने पर आपका डायलॉग हमेशा खुलेगा , जब यह फ़ोकस (पहला क्लिक) और बाद के क्लिक्स पर प्राप्त होगा।
बस सेटिंग android:inputType="none"
या setInputType(InputType.TYPE_NULL)
हमेशा पर्याप्त नहीं है। कुछ उपकरणों के लिए, आपको android:editable="false"
एक्सएमएल में भी सेट करना चाहिए , हालांकि यह पदावनत है। यदि यह अब काम नहीं करता है, तो इसे केवल नजरअंदाज कर दिया जाएगा (जैसा कि सभी XML विशेषताओं का समर्थन नहीं किया जाता है)।