J'ai une coutume EditText
déclarée dans un fichier XML et je "l’inclus comme ceci:
<include layout="@layout/my_edit_text"
android:id="@+id/passwordField"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/passwordHint"
android:inputType="textPassword" />
et voici my_edit_text.xml
:
<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dp"
android:layout_height="0dp"
android:textColor="@color/gray"
android:textSize="@dimen/editTextFontSize"
android:padding="@dimen/editTextPadding"
android:background="@drawable/edit_text_background"
android:ellipsize="end" />
Cependant, je ne peux pas "régler le hint
ou inputType
De cette façon, pour une raison quelconque. Si je le mets dans my_edit_text.xml
, cela fonctionne bien, mais je voudrais pouvoir définir chaque référence individuellement.
La raison pour laquelle j'ai la coutume EditText
est d'éviter d'avoir à réécrire toutes les valeurs communes dans chacun de mes EditText
s.
Dois-je faire quelque chose de similaire à ce que cette personne a? Si tel est le cas, devrai-je créer une sous-classe .java et extraire les attributs de cette manière? Cela semble excessif.
Réponses:
3 pour la réponse № 1La raison pour laquelle j'ai le EditText personnalisé est d'éviter de devoir réécrire toutes les valeurs communes dans chacun de mes EditTexts.
Étape 1: Supprimer my_edit_text.xml
.
Étape 2: Supprimer toutes les références à my_edit_text.xml
.
Étape n ° 3: Définissez une ressource de style (par exemple, dans res/values/styles.xml
) semblable à:
<style name="rileyText">
<item name="android:textColor">@color/gray</item>
<item name="android:textSize">@dimen/editTextFontSize</item>
<item name="android:padding">@dimen/editTextPadding</item>
<item name="android:background">@drawable/edit_text_background</item>
<item name="android:ellipsize">end</item>
</style>
Étape 4: Ajouter style="@style/rileyText"
à tous EditText
widgets auxquels vous souhaitez appliquer ces attributs particuliers.