android.support.v7.preference.EditTextPreference
के लिए इनपुट विधि प्रकार निर्दिष्ट करने का कोई तरीका है?एंड्रॉइड समर्थन EditTextPreference इनपुट प्रकार
उत्तर
अब कोई Android-Support-Preference-V7-Fix लाइब्रेरी का उपयोग कर सकता है।
फिक्स्ड EditTextPreference
EditText
पर एक्सएमएल विशेषताओं (जैसे inputType
) को अग्रेषित करता है, जैसे मूल वरीयता।
यह लाइब्रेरी android.support.v7.preference से कहीं बेहतर है। अधिक सुविधा समृद्ध, और थीम के लिए आसान है। –
संपादित करें: पिछले जवाब नीचे शेयर android.preference.EditTextPreference
पर बनाए गए थे और दुर्भाग्य से android.support.v7.preference.EditTextPreference
के लिए काम नहीं करते।
android.preference.EditTextPreference
EditText
नियंत्रण में प्रोग्राम के रूप में बनाया गया है और AttributeSet
Preference
से इसे करने के लिए पारित कर दिया है।
android.preference.EditTextPreference
Source:
public EditTextPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
mEditText = new EditText(context, attrs);
// Give it an ID so it can be saved/restored
mEditText.setId(com.android.internal.R.id.edit);
/*
* The preference framework and view framework both have an 'enabled'
* attribute. Most likely, the 'enabled' specified in this XML is for
* the preference framework, but it was also given to the view framework.
* We reset the enabled state.
*/
mEditText.setEnabled(true);
}
व्हाइट हमें Preference
पर ही inputType
स्थापित करने के लिए और यह EditText
के माध्यम से पारित कर दिया है की अनुमति देता है। दुर्भाग्य से android.support.v7.preference.EditTextPreference
बनाने के लिए इस पर आसपास काम कर रहे Layout
में EditText
विचारों के लिए this issue देखें प्रकट होता है:
बस आपको यह बताना चाहता था कि EditTextPreferenceDialogFragment उपवर्गीकरण और onAddEditTextToDialogView अधिभावी के साथ-साथ करने के लिए PreferenceFragmentCompat # onDisplayPreferenceDialog अधिभावी दिखाएं कि आवश्यकतानुसार उपclass ठीक काम कर रहा है, मदद के लिए धन्यवाद।
अपने स्वयं के वर्ग कि EditTextPreference
फैली बनाएँ और यह वहाँ की स्थापना की।
यहाँ मेरी EditIntegerPreference
वर्ग है:
public class EditIntegerPreference extends EditTextPreference {
public EditIntegerPreference(Context context) {
super(context);
}
public EditIntegerPreference(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
}
public EditIntegerPreference(Context context, AttributeSet attributeSet, int defStyle) {
super(context, attributeSet, defStyle);
getEditText().setInputType(InputType.TYPE_CLASS_NUMBER);
getEditText().setSelectAllOnFocus(true);
}
@Override
public String getText() {
try {
return String.valueOf(getSharedPreferences().getInt(getKey(), 0));
} catch (Exception e) {
return getSharedPreferences().getString(getKey(), "0");
}
}
@Override
public void setText(String text) {
try {
if (getSharedPreferences() != null) {
getSharedPreferences().edit().putInt(getKey(), Integer.parseInt(text)).commit();
}
} catch (Exception e) {
// TODO: This catch stinks!
}
}
@Override
protected void onSetInitialValue(boolean restoreValue, Object defaultValue) {
getEditText().setInputType(InputType.TYPE_CLASS_NUMBER);
getEditText().setSelectAllOnFocus(true);
if (restoreValue) {
getEditText().setText(getText());
} else {
super.onSetInitialValue(restoreValue, defaultValue != null ? defaultValue : "");
}
}
}
ध्यान दें कि यह कारण मैं नहीं गया इस मार्ग है EditTextPreference
android:inputType="number"
को inputType
विशेषता जोड़ने के लिए संभव है कि मैं चाहता था कि मेरी वरीयता Integer
के रूप में संग्रहीत हो और String
दुर्भाग्य से 'android.support.v7.preference.EditTextPreference' में' getEditText() 'विधि नहीं है। – ivkil
@ivkil क्या आपको एक विशेष कारण है 'android.support.v7.preference.EditTextPreference'? मैं पूछता हूं क्योंकि 'android.preference.EditTextPreference' एपीआई स्तर 1 के बाद से मौजूद है। –
हाँ। मेरे ऐप के लिए सेटिंग्स प्रदान करने के लिए, मैं 'वरीयता फ्रेगमेंट कॉम्पेट' का उपयोग कर रहा हूं। – ivkil
- 1. एंड्रॉइड एआईडीएल समर्थन "छोटा" प्रकार?
- 2. 2 उपयोगकर्ता इनपुट फ़ील्ड के साथ EditTextPreference का उपयोग
- 3. EditTextPreference Inflate Exception
- 4. एंड्रॉइड समर्थन .jks keystore प्रकार करता है?
- 5. इनपुट प्रकार ईमेल
- 6. इनपुट प्रकार = फ़ाइल आईओएस
- 7. इनपुट प्रकार
- 8. एंड्रॉइड में एडिटेक्स्ट में सादा पाठ इनपुट प्रकार और व्यक्ति नाम इनपुट प्रकार के बीच अंतर
- 9. अधिकतम प्रकार के इनपुट इनपुट प्रकार = "संख्या" आयनिक
- 10. एंड्रॉइड समर्थन किस फ़ॉन्ट फ़ाइल प्रकार करता है?
- 11. फ़ाइल प्रकार इनपुट
- 12. "इनपुट प्रकार = फ़ाइल"
- 13. एचटीएमएल 5 इनपुट प्रकार
- 14. strsplit: इनपुट प्रकार 'char'
- 15. इनपुट प्रकार टेक्स्ट
- 16. इनपुट प्रकार = फ़ायरफ़ॉक्स
- 17. इनपुट प्रकार - बैक बटन?
- 18. इनपुट प्रकार छुपा मूल्य
- 19. इनपुट प्रकार = फ़ाइल
- 20. इनपुट प्रकार = "छवि" IE7
- 21. फॉर्मेटास्टिक, स्वयं: इनपुट प्रकार
- 22. jQuery इनपुट प्रकार = 'फ़ाइल'
- 23. इनपुट प्रकार = "फ़ाइल", क्रोम
- 24. आईआईएस रिवाइट इनपुट प्रकार
- 25. इनपुट प्रकार टैग
- 26. इनपुट प्रकार = "date" आईई
- 27. इनपुट विशेष प्रकार
- 28. एंड्रॉइड ऑडियो इनपुट स्ट्रीम
- 29. एंड्रॉइड - हिंदी संयोजन समर्थन?
- 30. एंड्रॉइड: एकाधिक स्क्रीन का समर्थन
[संबंधित एंड्रॉइड समस्या] (https://code.google.com/p/android/issues/detail?id=185164), दृष्टि में कोई फिक्स नहीं है। – aha