ImageButton beerben

  • 4 Antworten
  • Neuester Beitrag
Diskutiere ImageButton beerben im Android App Entwicklung im Bereich Betriebssysteme & Apps.
N

NutCrisp

Neues Mitglied
Hey,

ich möchte mit einer Klasse, die nicht die Activity ist,I mageButton beerben. Allerdings hat ImageButton ja keinen Standardkonstruktor, sondern ich muss ein Context übergeben.
Aber wie kann ich das machen?
Muss ich wirklich beim Erstellen der Objekte das Context übergeben und dann an ImageButton weiterreichen?

Grüße
 
Zuletzt bearbeitet:
N

Neeldarax

Fortgeschrittenes Mitglied
Code:
public class MyImageButton extends ImageButton {

    public MyImageButton(Context context) {
        super(context);
    }
}
Ohne einen Context funktioniert ein View nicht.
Ja, den musst du übergeben und weiterreichen.

regards
 
N

NutCrisp

Neues Mitglied
Danke habe ich mir schon gedacht.

Kann ich dann die Klasse MyImageButton auch in den Layout-Dateien benutzen, also z.B:
Code:
<!-- z.B. main.xml -->
<MyImageButton 
    android:id="@+id/MyId" 
    type="niceButton"
    ...
>
</MyImageButton>
wobei type ein Attribut der Klasse MyImageButton ist? Oder muss ich den Attributen in der Activity "nachträglich" Werte zuweisen?

Grüße
 
DieGoldeneMitte

DieGoldeneMitte

Experte
Eigene Attribute werden über eigene Namespaces definiert.

Im layout:
Code:
<LinearLayout
   ...
   xmlns:mib="http://meine.domain/android/meinschema"
>
<MyImageButton 
    android:id="@+id/MyId" 
    mib:type="niceButton"
    ...
>
</MyImageButton>
Und dann aus dem Attributeset wie folgt herausgezogen:
Code:
public MyImageButton {
   public final String SCHEMA = "http://meine.domain/android/meinschema";
   String type;
   public MyImageButton( Context context, AttributeSet attrs ) {
      super(content,attrs); // EDIT to ADD
      type = attrs.getAttributeValue(SCHEMA, "type", "default");
   }
Es steht dir natürlich frei, schöne getter und setter für deine Attribute zu machen.
 
Zuletzt bearbeitet:
N

NutCrisp

Neues Mitglied
Danke.

Mal sehen welche Variante ordentlicher ist.