Uso de SurfaceView con xml

Me estoy refiriendo a Usando MySurfaceView con main.xml (android), con el código "textView1.setText("set");" dentro del método onCreate habrá un error ( tv1 = (TextView)findViewById(R.id.tv1); - declare funciona bien). ¿Cómo puedo resolver esto? Gracias de antemano por cualquier ayuda.

public class For12junonly2Activity extends Activity {


TextView tv1;
EditText et1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    try
    {
    tv1 = (TextView)findViewById(R.id.tv1);     
    tv1.setText("Hi");
    }catch(Exception e)
    {
        Log.d("prob",String.valueOf(e));
    }
    et1 = (EditText)findViewById(R.id.et1); 
    setContentView(R.layout.main);

    float sss = surf.getX();
    Log.d("float create",String.valueOf(sss));
}

}

 class surf extends SurfaceView implements SurfaceHolder.Callback
{
...... from https://stackoverflow.com/q/8149225/1393006




public boolean onTouchEvent(MotionEvent event)
{   
    canvas.drawBitmap(myBitmap, event.getX() - (myBitmap.getWidth() / 2), event.getY() - (myBitmap.getHeight() / 2), null);
    canvas.drawCircle(event.getX(), event.getY(), 10, paint);
    surfaceHolder.unlockCanvasAndPost(canvas);
    Log.d("onTouch","X: "+event.getX()+" , Y: "+event.getY());
    x = event.getX();
    return true;
}
}

código de xml

<TextView
    android:id="@+id/tv1" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="tv1" />

<te.de11.surf
    android:id="@+id/surfaceview" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
   />

mensaje de error de log cat

D/dalvikvm(443): Debugger has detached; object registry had 1 entries
I/AndroidRuntime(443): NOTE: attach of thread 'Binder Thread #3' failed
D/prob(363): java.lang.NullPointerException
D/float create(363): 0.0
I/ActivityManager(60): Displayed te.de11/.For12junonly2Activity: +1s29ms
D/dalvikvm(127): GC_EXPLICIT freed 66K, 52% free 2855K/5895K, external 4998K/6087K, paused 44ms

preguntado el 12 de junio de 12 a las 17:06

W/dalvikvm(403): threadid=1: subproceso que sale con una excepción no detectada (grupo=0x40015560), ¿ayuda este tipo de mensaje de error? -

Realmente no, ¿podría encerrar el código en un bloque try-catch e imprimir el seguimiento de la pila en el bloque catch y publicarlo? -

Obtuve una excepción de puntero nulo, pero ¿por qué es así? Hice toda la declaración que funciona normalmente en mi otro programa. -

1 Respuestas

Está intentando obtener una referencia a TextView en su XML antes de configurar ese XML como la vista para su actividad. Como su Actividad no tiene ninguna vista en este momento, cualquier llamada a findViewById() dará como resultado una NullPointerException. Para solucionarlo, simplemente llame setContentView() antes de hacer referencia a cualquiera de los widgets utilizados en el XML. Por lo general, se llama directamente después de la super() llamada.

Respondido el 12 de junio de 12 a las 18:06

lo que dices es exactamente lo que hice antes de publicar la pregunta, sin embargo, no funciona. - Amblll

En ese caso, proporcione el seguimiento completo de la pila de LogCat para NullPointerException, junto con el código relacionado. - Raghav Sood

Está trabajando ahora. Eliminé una parte del código/comentarios a toda prisa porque parece que esperas con impaciencia, así que no tengo idea de lo que cambié. Gracias de cualquier manera. - Amblll

Lo siento si di esa impresión: P Sería bueno si pudiera agregar la solución final como respuesta y aceptarla como referencia para futuros visitantes. - Raghav Sood

Lo siento, me equivoqué. Todavía no está resuelto. Configuré el texto en xml y pensé que funciona. Con el intento y la captura, puede evitar que el programa se bloquee, pero aún así no estableció el texto. - Amblll

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.