sto creando una vista composto personalizzato con la seguente disposizioneRiutilizzare un attributo standard di Android sul mio visualizzazione personalizzata
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text"
android:singleLine="true"/>
</merge>
Come si può vedere, si tratta semplicemente di un TextView
e EditText
. Desidero essere in grado di fornire attributi alla mia visualizzazione personalizzata inoltrati allo TextView
o EditText
. Per esempio
<codeguru.labelededittext.LabeledEditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:label="@string/label"
app:hint="@string/hint"/>
ho capito come trasmettere questi stringa attribuisce al TextView
e EditText
, repsectively:
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.LabeledEditText,
0, 0);
try {
label.setText(a.getString(R.styleable.LabeledEditText_label));
edit.setHint(a.getString(R.styleable.LabeledEditText_hint));
} finally {
a.recycle();
}
Ora voglio anche impostare la inputType
del EditText
. Se creo un tag <attr name="inputType" format="flag">
, dovrò popolarlo con tutti i possibili valori di flag? C'è un modo per riutilizzare i valori già dichiarati da EditText
?
tua descrizione non è chiara. stai cercando di dire che vuoi che lo stesso tag di attributo sia comune in tutti i componenti? – prashantwosti
@prashantwosti No, voglio un attributo 'label' che imposta 'android: text' dell'attributo' TextView' e 'hint' che imposta' android: hint' di' EditText'. Questi sono semplici perché sono solo stringhe. Tuttavia, voglio anche un 'inputType' che imposta' android: inputType' per 'EditText'. Ma non voglio riscrivere il codice per tutti i possibili valori. –
Costruirò un SSCCE corretto per illustrare meglio. –