Ich bin eine benutzerdefinierte Verbindung Ansicht mit dem folgende LayoutReuse ein Standard-Android-Attribut auf meiner benutzerdefinierten Ansicht
<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>
Wie Sie sehen können, ist es einfach ein TextView
und ein EditText
zu schaffen. Ich möchte in der Lage sein Attribute meiner benutzerdefinierten Ansicht zu schaffen, die entweder an die TextView
oder EditText
weitergeleitet werden. Zum Beispiel
<codeguru.labelededittext.LabeledEditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:label="@string/label"
app:hint="@string/hint"/>
Ich habe herausgefunden, wie diese Zeichenfolge weiterleiten an die TextView
und EditText
Attribute 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();
}
nun auch stelle ich die inputType
des EditText
wollen. Wenn ich einen <attr name="inputType" format="flag">
Tag erstellen, werde ich es mit allen möglichen Flagwerten füllen müssen? Gibt es eine Möglichkeit, die bereits von EditText
deklarierten Werte wiederzuverwenden?
Ihre Beschreibung ist unklar. Wollen Sie sagen, dass das gleiche Attribut-Tag in allen Komponenten verwendet werden soll? Kein – prashantwosti
@prashantwosti, ich möchte ein 'label' Attribut, das die' Android setzt: Text' des 'TextView' und' hint' Attribut, das die 'Android setzt: hint' des' EditText'. Diese sind einfach, weil sie nur Zeichenfolgen sind. Ich möchte aber auch einen 'inputType', der den' android: inputType' für 'EditText' festlegt. Aber ich möchte den Code nicht für alle möglichen Werte schreiben. –
Ich werde eine richtige SSCCE erstellen, um besser zu veranschaulichen. –