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
Du betrachtest das Thema "Custom View" im Forum "Android App Entwicklung",