1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Unicate, 28.09.2010 #1
    Unicate

    Unicate Threadstarter Android-Experte

    Hi alle zusammen!

    Ich möchte eine CustomView bauen.

    Zu beginn dacht ich, dass ich mal ganz klein anfange und einen Button ableite.
    Ich suche mich heute schon den ganzen Tag Tod deswegen.
    Das was ich gefunden haben, hat mich nicht weiter gebracht.

    Also hier mal das was ich habe:

    Der Button:
    PHP:
    public class ConnectionButton extends Button implements OnClickListener{

        public 
    ConnectionButton(Context contextAttributeSet attrs) {
            
    super(contextattrs);
            
    setOnClickListener(this);
            
    setBackgroundColor(Color.WHITE);
        }

        
    /**
         * static vars
         */
        
    private static final int STATE_DISCONNECTED 0;
        private static final 
    int STATE_PENDING 1;
        private static final 
    int STATE_CONNECTED 2;
        
    /**
         * normal members
         */
        
    private final int _state 0;
        @
    Override
        
    public void onClick(View v) {
            
    Log.e("Button""click");
        }

    }
    Die dazugehörige xml:
    HTML:
    <?xml version="1.0" encoding="utf-8"?>
    <de.unicate.android.button.ConnectionButton
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
    </de.unicate.android.button.ConnectionButton>
    
    
    Meine main.xml:
    HTML:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
        <View
        class ="de.unicate.android.button.ConnectionButton"
        android:text="my button" 
        android:id="@+id/Button01" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" />
    </LinearLayout>
    
    Fehlt noch was?

    Wenn ich das App starte passiert gar nichts. Was mach ich falsch?
     
  2. Unicate, 29.09.2010 #2
    Unicate

    Unicate Threadstarter Android-Experte

    Hat noch keiner von euch ne CustomView gebaut?
    Kann ich mir fast nicht vorstellen.
     
  3. DieGoldeneMitte, 29.09.2010 #3
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Im Prinzip sieht dein Code ganz gut aus. Zwei Sachen fallen mir auf:

    1.) final _state = ... ? Ein state sollte sich aber ändern (können), oder? ;-) Das kann aber eigentlich nix mit deinem Problem zu tun haben.

    2.) Du benutzt <View class="de.unikat.Button" .../> Das sieht komisch aus. Eigentlich muss der Klassenname des Views der Elementname sein, also <de.unikat.Button ... />.
     
  4. Unicate, 29.09.2010 #4
    Unicate

    Unicate Threadstarter Android-Experte

    Du hast natürlich recht, der state darf nicht final sein, mein Fehler.

    Ich bin gerade dem Tutorial nachgegangen und es funktionierte.
    Ich hatte irgendwo gelesen, das man das mit <view class="de. ...... /> machen muss.

    Egal, danke erstmal
     
  5. DieGoldeneMitte, 29.09.2010 #5
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Habe nach nachgucken Deine Version nun auch gefunden.
    Aaaber: XML ist Case sensitiv, und Du schriebst "View" anstatt "view".
    Ich denke mal, dass Du damit die Basisklasse View aufgerufen hattest und die ignorierte class und zeigte halt nix an.
     
    Zuletzt bearbeitet: 29.09.2010
  6. BenOtto, 29.09.2010 #6
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    Genau. Bei eigenen Views hast du die Wahl zwischen <de.example.MyView ... /> und <view class="de.example.MyView" ... />

    das hat beides die selbe Wirkung (und ist wohl Geschmackssache).

    Bei inneren Klassen bleibt nur die 2te Variante. <view class="de.example.MyView$InnerClass" ... />

    Und falls du innerhalb eines Layouts referenzieren möchtest geht das mit <include layout="@layout/layout_resource"/>.
    (Vielleicht hattest du das vor, weil du ja 2 XMLs angelegt hast.)
     
    Zuletzt bearbeitet: 29.09.2010
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGT] Komplexe View erstellen Android App Entwicklung 13.09.2017
[ERLEDIGT] Listview mit Datenbank über Custom ArrayList verbinden Android App Entwicklung 22.04.2017
[RÜCKMELDUNG FEHLT] Text und Bilder in View einbinden Android App Entwicklung 26.03.2017
[ERLEDIGT] Interpolator für einen Custom Dialog verwenden in einem Fragment Android App Entwicklung 20.03.2017
[ERLEDIGT] View zum selektieren der Wochentage Android App Entwicklung 19.03.2017
[ERLEDIGT] Einen schatten über einer Custom ToolBar anzeigen Android App Entwicklung 15.03.2017
Custom ActionBar (toolbar) "Bottom" schatten anzeigen Android App Entwicklung 09.03.2017
Fehlermeldung: Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer... Android App Entwicklung 30.01.2017
Viewelemente neu zeichnen Android App Entwicklung 04.01.2017
Search Custom Adapter Android App Entwicklung 02.01.2017
Du betrachtest das Thema "Custom View" im Forum "Android App Entwicklung",