Gibt es eine Möglichkeit, den Eingabemethodentyp für android.support.v7.preference.EditTextPreference
anzugeben?Android-Unterstützung EditTextPreference Eingabetyp
Antwort
Jetzt kann man Android-Support-Preference-V7-Fix Bibliothek verwenden.
Fixed EditTextPreference
leitet die XML-Attribute (wie inputType
) an die EditText
weiter, genau wie die ursprüngliche Präferenz.
Diese Bibliothek ist Android.support.v7.preference weit überlegen. Mehr Feature-Rich und einfacher zu Theme. –
Edit: Die bisherigen Antworten unten android.preference.EditTextPreference
auf dem Lager gebaut wurden und leider funktioniert nicht für die android.support.v7.preference.EditTextPreference
.
Im android.preference.EditTextPreference
der EditText
Steuerung programmatisch erstellt und die AttributeSet
vom Preference
wird an sie übergeben.
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);
}
Weiß erlaubt uns, die inputType
auf der Preference
selbst zu setzen und sie haben durchlaufen zum EditText
. Leider scheint die android.support.v7.preference.EditTextPreference
die EditText
im Layout
this issue auf die Arbeit dieser Ideen Siehe erstellen um:
Nur, damit Sie wollten wissen, dass Subklassen EditTextPreferenceDialogFragment und zwingende onAddEditTextToDialogView sowie zwingende PreferenceFragmentCompat # onDisplayPreferenceDialog zu zeige, dass die Unterklasse nach Bedarf funktioniert, danke für die Hilfe.
Ihre eigene Klasse erstellen, die die EditTextPreference
und legen Sie es dort erstreckt.
Hier ist meine EditIntegerPreference
Klasse:
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 : "");
}
}
}
Beachten Sie, dass es möglich ist, das inputType
Attribut auf den der EditTextPreference
android:inputType="number"
Der Grund, warum ich diesen Weg gehen nicht hinzuzufügen ist dass ich wollte, dass meine Präferenz als Integer
und nicht als String
Leider 'android.support.v7.preference.EditTextPreference' enthält nicht' getEditText() 'Methode. – ivkil
@ivkil gibt es einen bestimmten Grund benötigen Sie 'android.support.v7.preference.EditTextPreference'? Ich frage, weil 'android.preference.EditTextPreference' existiert seit API-Ebene 1. –
Yep. Um Einstellungen für meine App bereitzustellen, verwende ich 'PreferenceFragmentCompat'. – ivkil
- 1. EditTextPreference stürzt ab
- 2. Android-Einstellungen, anpassen EditTextPreference
- 3. Eingabetyp - Muster
- 4. Zeigen Sie den Wert des EditTextPreference zusammenfassend
- 5. Verwenden von EditTextPreference mit 2 Benutzereingabefeldern
- 6. Möglich, eine EditTextPreference automatisch zu vervollständigen?
- 7. Android benutzerdefinierte EditTextPreference UI wird nicht aktualisiert
- 8. Etikett nach Eingabetyp auswählen
- 9. Formtastic, eigene: als Eingabetyp
- 10. Set Eingabetyp = Datum
- 11. CSS Eingabetyp = Text
- 12. Eingabetyp = Zurücksetzen und Aussparen
- 13. HTML-Eingabetyp = Datum Wochentage
- 14. Eingabetyp - Zurück-Taste?
- 15. Eingabetyp = "Datei" in Ember.js
- 16. Wie button als eingabetyp datei
- 17. AngularJS Datumsformat Validierung Eingabetyp Datum
- 18. Eingabetyp im glänzenden Feld einschränken
- 19. Wie die Tastatur zu verbergen und EditTextPreference programmgesteuert zu aktualisieren?
- 20. Android - Keine getEditText-Methode in EditTextPreference mit Preference Support Library
- 21. ändern Eingabetyp Zeit Sekunden in der Steuerung
- 22. HTML5-Eingabetyp = "Nummer" machen, die Bindestriche akzeptiert
- 23. Hinzufügen von Fontawesome zu einem Eingabetyp Button
- 24. HTML5 Eingabetyp Nummer funktioniert nicht in Firefox
- 25. EditText eingabetyp textCapSentences funktioniert nicht auf Lollipop
- 26. Generische Schnittstellenimplementierung: Generischer Rückgabetyp und generischer Eingabetyp
- 27. Programmatische Änderungen am Eingabetyp-Text erkennen
- 28. Ermitteln, ob der Eingabetyp = "Datum" Platzhalter unterstützt
- 29. Jquery uniform wont design eingabetyp = text elements
- 30. Display-Spalte in Datagridview als Passwort-Eingabetyp
[Verwandte Android-Problem] (https://code.google.com/p/android/issues/detail?id=185164), keine Lösung in Sicht. – aha