Einsteigerfrage: View Klasse in xml einbinden

S

scrats

Neues Mitglied
0
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...
 
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
 
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:
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?
 
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
 
vielleicht solltest du sowas sagen

View v1 = (View)findViewById(R.id.View01);
v1.addView(feld);
 
leider hat View keine methode wie:
v1.addView(feld);

hab auch
cube.findViewById(R.id.View01);
versucht.
 
Zuletzt bearbeitet:
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
 
  • Danke
Reaktionen: scrats
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
pacman-screenshot.png


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
 
also es hat funktioniert mit dem linearlayout!
nach langem rumspielen^^

auf jedenfall danke swordi für die hilfe und deine geduld!
 
kein problem - halt uns auf dem laufenden, wenn du was zum spielen hast ;)
 

Ähnliche Themen

D
Antworten
23
Aufrufe
2.542
Data2006
D
OnkelLon
Antworten
13
Aufrufe
1.983
OnkelLon
OnkelLon
M
Antworten
0
Aufrufe
1.143
mglinka99
M
Zurück
Oben Unten