Android: Wie bekomme ich ein benutzerdefiniertes Attribut eines XML in der Aktivitätsklasse

Wie bekomme ich den Attributwert "erforderlich" in meiner Aktivitätsklasse?

1. Werte \ attrs.xml

<declare-styleable name="EditText"> <attr name="required" format="boolean" /> </declare-styleable> 

2. layout \ text.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:custom="http://schemas.android.com/apk/res/com.mycompany.test" android:baselineAligned="false" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <EditText android:id="@+id/txtTest" android:layout_height="wrap_content" android:layout_width="fill_parent" android:inputType="text" custom:required="true" /> 

  • Rendering-Problem in XML-Vorschau: Fehler nicht lokalisieren 0
  • Android: Trennzeichen zwischen Elementen in RecyclerView hinzufügen
  • Einfache HTML (oder XML) zu Android Native Konverter
  • Mapbox Inflate View auf Fragment
  • Wie kann ich ein Fragment als verborgen in einem XML-Layout deklarieren?
  • SAX-Parser vs XMLPull-Parser
  • Transparente Navigationsleiste für Lollipop App?
  • Button mit benutzerdefiniertem XML-Layout
  • One Solution collect form web for “Android: Wie bekomme ich ein benutzerdefiniertes Attribut eines XML in der Aktivitätsklasse”

    Im EditText- Konstruktor fügen Sie Logik hinzu, um Daten aus XML zu lesen:

      public EditText(final Context context, final AttributeSet attrs, final int defStyle) { super(context, attrs, defStyle); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.EditText); final int N = a.getIndexCount(); for (int i = 0; i < N; ++i) { int attr = a.getIndex(i); switch (attr) { case R.styleable.EditText_required: { if (context.isRestricted()) { throw new IllegalStateException("The "+getClass().getCanonicalName()+":required attribute cannot " + "be used within a restricted context"); } boolean defaultValue = false; final boolean required = a.getBoolean(attr, defaultValue ); //DO SOMETHING break; } default: break; } } a.recycle(); } 

    Das Switch- Konstrukt wurde verwendet, um nach vielen benutzerdefinierten Attributen zu suchen. Wenn du nur an einem Attribut interessiert bist, kannst du die switch-Anweisung überspringen

    Wenn du mehr erfahren willst, vor allem, wie man Methodenhandler mit xml-Attribut hinzufügt, lese dies: Lange Presse-Definition im XML-Layout, wie android: onClick tut

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.