1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

ImageButton beerben

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von NutCrisp, 15.03.2011.

  1. NutCrisp, 15.03.2011 #1
    NutCrisp

    NutCrisp Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    15.03.2011
    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: 15.03.2011
  2. Neeldarax, 15.03.2011 #2
    Neeldarax

    Neeldarax Erfahrener Benutzer

    Beiträge:
    170
    Erhaltene Danke:
    31
    Registriert seit:
    07.12.2010
    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
     
  3. NutCrisp, 16.03.2011 #3
    NutCrisp

    NutCrisp Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    15.03.2011
    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
     
  4. DieGoldeneMitte, 16.03.2011 #4
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    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: 16.03.2011
  5. NutCrisp, 16.03.2011 #5
    NutCrisp

    NutCrisp Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    15.03.2011
    Danke.

    Mal sehen welche Variante ordentlicher ist.
     

Diese Seite empfehlen