Domanda

è una domanda facile, ma non riesco a capirlo:

questo è il mio xml:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android = "http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
>

<GG.My_pic.testA
        android:id = "@+id/myview"
        android:layout_width = "fill_parent"
        android:layout_height = "fill_parent"
    />

</FrameLayout>

In lander lunare, principali utilizzi filetto

    // tell system to use the layout defined in our XML file
    setContentView(R.layout.lunar_layout);

Ma non posso usare il mio

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

Se cambio R.layout.main a -> nuova TESTA (questo), funziona

(Testa è la classe che estende SurfaceView implementa SurfaceHolder.Callback)

perché ??

È stato utile?

Soluzione

ho scoperto perché, ma io non so perché.

Essendo una vera principiante sia in Java e Android, ho trascorso un tempo molto lungo per scoprirlo.

La chiave di questo problema è

class gameView estende SurfaceView attrezzi SurfaceHolder.Callback {

public gameView(Context context, AttributeSet attrs) {
    super(context, attrs);
    // TODO Auto-generated constructor stub
}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
        int height) {
    // TODO Auto-generated method stub

}

@Override
public void surfaceCreated(SurfaceHolder holder) {
    // TODO Auto-generated method stub

}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {
    // TODO Auto-generated method stub

}

}

si può vedere, che questa è la base di SurfaceView, in ogni esercitazione

come

http://android-er.blogspot.com/2010/ 05 / android-surfaceview.html

http: //www.droidnova. com / giocare-con-grafica-in-android-parte-ii, 160.html

Ci sono 3 tipi di costruttore in SurfaceView:

SurfaceView(Context context)
SurfaceView(Context context, AttributeSet attrs)
SurfaceView(Context context, AttributeSet attrs, int defStyle)

ho passato una giornata con la prima:

SurfaceView(Context context)

e si tratta sempre di "forza chiudere".

, ma quando mi sono girato verso il secondo costruttore:

SurfaceView(Context context, AttributeSet attrs)

Funziona improvvisamente!

Questa è la soluzione.

Qualcuno mi può perché ??

dica
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top