znieh99
Fortgeschrittenes Mitglied
- 12
Hallo Forum,
ich habe mir die Source der App SNAKE (samples/Snake/src/com/example/android/snake/SnakeView.java - platform/development - Git at Google) heruntergeladen um sie zu analysieren. Dabei ist mir eine für mich ungewöhnliche Instanzierung aufgefallen: Schon beim setContentView() in onCreate() wird der Konstruktor der Klasse SnakeView aufgerufen. Ich frage mich nun, ob dies eine übliche Vorgangsweise ist oder eine mir verborgene Sinnhaftigkeit besitzt?
In der Folge kurz der Zusammenhang skizziert:
snake_layout.xml
Snake.java
SnakeView (TileView ist ein View)
ich habe mir die Source der App SNAKE (samples/Snake/src/com/example/android/snake/SnakeView.java - platform/development - Git at Google) heruntergeladen um sie zu analysieren. Dabei ist mir eine für mich ungewöhnliche Instanzierung aufgefallen: Schon beim setContentView() in onCreate() wird der Konstruktor der Klasse SnakeView aufgerufen. Ich frage mich nun, ob dies eine übliche Vorgangsweise ist oder eine mir verborgene Sinnhaftigkeit besitzt?
In der Folge kurz der Zusammenhang skizziert:
snake_layout.xml
Code:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.app.heinz.snake.SnakeView <-- der wohl auslösende Eintrag
android:id="@+id/snake"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tileSize="24"
/>
Snake.java
Code:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// No Title bar
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.snake_layout); <-- hier wird auch der Konstruktor von SnakeView aufgerufen
mSnakeView = (SnakeView) findViewById(R.id.snake);
mSnakeView.setTextView((TextView) findViewById(R.id.text));
SnakeView (TileView ist ein View)
Code:
public class SnakeView extends TileView {
...
/**
* Constructs a SnakeView based on inflation from XML
*
* @param context
* @param attrs
*/
public SnakeView(Context context, AttributeSet attrs) {
super(context, attrs);
initSnakeView();