Comunicación entre vistas personalizadas de SurfaceView y de android por defecto

Mi problema es la comunicación entre el GameView de encargo (extiende SurfaceView) y TextView: Quiero fijar el texto de TextView de dentro del GameView. En la actividad principal estoy utilizando este archivo de diseño, debe explicar la estructura de mi aplicación:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#00ff00" > <TextView android:id="@+id/scoreTV" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="score: 0" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="back" android:layout_alignParentRight="true" /> </RelativeLayout> <org.gk.grApp.GameView android:id="@+id/gameplayScreen" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> 

No puedo cambiar el texto de TextView en mi objeto GameView, porque es imposible tocar el subproceso de UI desde otro. Handler no funciona demasiado, porque no puedo dar referencia a un manipulador al constructor de GameView, que se realiza después de cargar este archivo xml (una lectura sobre el constructor por defecto para los archivos xml, por ejemplo, aquí ¿Cómo puedo utilizar GLSurfaceView en un LinearLayout junto con otros Vistas, como TextView o botón? ). ¿Tienes idea de lo que debo hacer ahora? Tal vez mi deducción es incorrecta, así que por favor, cuéntame sobre esto.

EDIT: He cambiado mi archivo xml, en lugar de GameView Tengo ahora:

 <LinearLayout android:id="@+id/gameplayScreen" android:layout_width="fill_parent" android:layout_height="fill_parent" > </LinearLayout> 

También agregué un argumento (tercero) en la firma del constructor:

 public GameView(Context context, AttributeSet as, Handler h) { ... } 

Y cambió mi onCreate en GameplayActivity:

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gameplay); LinearLayout ll = (LinearLayout)findViewById(R.id.gameplayScreen); GV = new GameView(this, null, scoreHandler); ll.addView(GV); } 

Funciona, ahora puedo configurar el texto de TextView, pero después de hacer clic en el botón Atrás se genera otra excepción: "Realizar pausa de actividad que no se reanuda: {org.gk.grApp / org.gk.grApp.MainMenuActivity}". Acabo de empezar a buscar información sobre esto.

Primero haga una referencia al TextView en el nivel de actividad:

TextView txv;

En onCreate, asigne esta referencia:

Txv = (TextView) findViewById (R.id.MyTextView);

A continuación, haga un método en su actividad después de onCreate como esto:

 public void setTextView(final String txt){ MyActivity.this.runOnUiThread(new Runnable() { public void run() { txv.setText(txt); } }); } 

A continuación, realiza una llamada desde su vista personalizada:

((MiActividad) getContext ()). SetTextView (str);

  • Cargar anuncio (adMob) en el subproceso de fondo
  • La piscina de sonido no termina jugando el archivo completo
  • Handler.sendMessageDelayed (msg, delay) no funciona correctamente
  • ¿El postDelayed hace que el mensaje salte al frente de la cola?
  • ¿Cómo cambiar / restablecer el tiempo de retraso del controlador?
  • Cómo pasar un socket Bluetooth a otra actividad mediante la interfaz de la aplicación
  • Thread / Handler error - El token de barrera de sincronización de cola de mensajes especificado no se ha publicado
  • Diferencia entre thread / runnable, handler, runonuithread, asynctask
  • Handlers vs llamadas asincrónicas en Android
  • Detener controlador ().
  • ¿Cuál es la relación entre Looper, Handler y MessageQueue en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.