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

Einsteigerfrage: View Klasse in xml einbinden

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von scrats, 27.01.2010.

  1. scrats, 27.01.2010 #1
    scrats

    scrats Threadstarter Neuer Benutzer

    Beiträge:
    18
    Erhaltene Danke:
    0
    Registriert seit:
    25.01.2010
    Hi zusammen!

    wiedermal verstehe ich etwas nicht, wahrscheinlich gehe aber nu alsch an die sache ran!

    Jetzt zum aufbau:

    Auf meinem Bildschirm sollen erstmal zu einem Spiel Daten stehen wie Zeit...., dies starte ich als Activity:
    Code:
    public void onCreate(Bundle b) {
            super.onCreate(b);
            feld = new feld(this);
            feld.setOnTouchListener(new CubeTouchListener());        
            setContentView(R.layout.bildschirm);
            //setContentView(feld);
        }
    
    diese Hauptklasse soll dann das feld laden. Feld erbt von View.

    meine xml:

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:padding="4dip"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:gravity="right">
    
        <Chronometer android:id="@+id/chronometer"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0"
            android:paddingBottom="30dip"
            android:bufferType="normal" android:paddingTop="10dip"/>
    
        <View android:id="@+id/View01" android:layout_width="wrap_content" android:layout_height="wrap_content"></View>
    </LinearLayout>
    
    Ich krieg jeweils das feld geladen (ist auskomentiert mit Java) als auch bildschirm geladen. Aber wie krieg ich es hin damit feld eingebunden wird?

    hoffe ihr könnt mir helfen...
     
  2. swordi, 27.01.2010 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    hallo

    du kannst nicht 2 mal setContentView aufrufen.

    einfach deinen chronometer in die bildschirm.xml an die passende stelle einfügen

    im code dann eben Chronometer x = (Chronometer)findViewById(R.id.chronometer)

    ganz normal wie jede andere view halt
     
  3. scrats, 27.01.2010 #3
    scrats

    scrats Threadstarter Neuer Benutzer

    Beiträge:
    18
    Erhaltene Danke:
    0
    Registriert seit:
    25.01.2010
    Der 2te Aufruf von setContentView() ist auskommentiert. Wollte nur gleichzeitig zeigen wie ich nur das feld starte ohne Bildschirm.
    Mein Gedanke war die View Klasse feld, als Objekt in das xml einbinden. Kann man das? hab extra dafür dieses View01 erstellt:
    Code:
    ...
    <View android:id="@+id/View01" android:layout_width="wrap_content" android:layout_height="wrap_content"></View>
    ...
    
    ***
    Ich hab schon versucht sowas wie:
    Code:
    feld.setId(R.id.View01);
    
    aber funtzt net
     
    Zuletzt bearbeitet: 27.01.2010
  4. swordi, 27.01.2010 #4
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    hmm an und für sich geht das so

    vielleicht kann nicht so einfach View selbst verwenden. das ist ja die oberklasse zu allen views.

    was soll die komponente denn machen?
     
  5. scrats, 27.01.2010 #5
    scrats

    scrats Threadstarter Neuer Benutzer

    Beiträge:
    18
    Erhaltene Danke:
    0
    Registriert seit:
    25.01.2010
    Das soll ein spiel werden! der Bildschirm soll Sachen machen, welche für den Benutzer nur Informativ sein sollen, Punkte, Zeit und so. Und das Feld ist das eigentliche Spielfeld, wo der Spieler dann auch ein TouchListener hat. habs mal so Probiert:
    Code:
    public void onCreate(Bundle b) {
            super.onCreate(b);
            feld = new feld(this);
            feld.setOnTouchListener(new CubeTouchListener());  
            feld.setId(R.id.View01);      
            setContentView(R.layout.bildschirm);
        }
    
    leider ladet er wieder nur die xml vom Bildschirm, ohne die View einzubinden
     
  6. swordi, 27.01.2010 #6
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    vielleicht solltest du sowas sagen

    View v1 = (View)findViewById(R.id.View01);
    v1.addView(feld);
     
  7. scrats, 27.01.2010 #7
    scrats

    scrats Threadstarter Neuer Benutzer

    Beiträge:
    18
    Erhaltene Danke:
    0
    Registriert seit:
    25.01.2010
    leider hat View keine methode wie:
    v1.addView(feld);

    hab auch
    cube.findViewById(R.id.View01);
    versucht.
     
    Zuletzt bearbeitet: 27.01.2010
  8. swordi, 27.01.2010 #8
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    naja du verlangst hellseherische fähigkeiten von mir

    was ist eigentlich dein feld?

    wenn die kein addVIew hat, dann nimm statt der view halt ein linearlayout oder sowas

    dem kannst du childs adden.

    deine infos sind leider sehr spärlich und das ganze ist nur ein ratespiel
     
    scrats bedankt sich.
  9. scrats, 27.01.2010 #9
    scrats

    scrats Threadstarter Neuer Benutzer

    Beiträge:
    18
    Erhaltene Danke:
    0
    Registriert seit:
    25.01.2010
    Ich hab keine Ahnung wie ich es genau beschreiben soll.
    Ich hab eine Activity die mit einer xml Datei arbeitet! in dieses erzeugende Fenster soll es ein gebiet geben welches als spielfeld dient! dieses Spielfeld ist ein View Objekt also:

    public class Feld extends View{}

    dieses Feld soll in die xml Datei eingebetet werden.
    Das Feld hat ein canvas, touchListener...
    Und die Activity soll Selber was anzeigen können (Zeit Punkte..) und zusätzlich auch das Feld
    [​IMG]

    bsp an diesem bild:
    der highscore und das steuerkreuz unten sollen von der activity über das xml kommen, und das Spiel selber von dem View Obejct feld.

    Hoffe ich konnte diesmal erklären was ich will.

    Danke für deine geduld
     
  10. scrats, 29.01.2010 #10
    scrats

    scrats Threadstarter Neuer Benutzer

    Beiträge:
    18
    Erhaltene Danke:
    0
    Registriert seit:
    25.01.2010
    also es hat funktioniert mit dem linearlayout!
    nach langem rumspielen^^

    auf jedenfall danke swordi für die hilfe und deine geduld!
     
  11. swordi, 30.01.2010 #11
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    kein problem - halt uns auf dem laufenden, wenn du was zum spielen hast ;)
     

Diese Seite empfehlen