obtiene el objeto Activity mientras está en el contexto View

Este es un seguimiento de este post:

findViewById en una subclase SurfaceView throwing RuntimeException

Sobre la base de los comentarios de Romain Guy (que aceptaré en breve, ya que es una solución), me gustaría obtener la actividad de llamada desde dentro de la vista, para que pueda utilizarla para obtener el recurso TextView deseado.

No veo ningún método en Ver esa actividad de devolución. ¿Cuál es la forma apropiada de hacer esto? ¿O existe una mejor alternativa para trabajar con TextViews desde dentro de otro contexto de Vista.

Básicamente, estoy llamando a setContentView (R.layout.xxx) en onCreate () (como de costumbre), así que realmente no tengo una manera de pasar en las referencias a TextViews adicionales a menos que desafortunadamente recuperar la vista después de setContentView y luego hacer llamadas en eso.

2 Solutions collect form web for “obtiene el objeto Activity mientras está en el contexto View”

Una actividad es un contexto, pero no hay garantía de que el contexto utilizado por una vista sea siempre una actividad. Conseguir las vistas de onCreate () para hacer una cierta disposición es perfectamente válido y es cómo se escriben generalmente las aplicaciones de Androide. Usted podría hacer algo como esto por ejemplo:

setContentView(...); MySurfaceView v = findViewById(R.id.theusrface); TextView t = findViewById(R.id.thecontent); v.setContent(v); 

La lógica no debe ir en sus vistas.

Si ya conoce la clase de actividad en la que se encuentra su vista, es decir, MyActivity, puede utilizar el miembro estático MyActivity.this desde dentro de su vista y sus oyentes, como en el ejemplo siguiente:

 AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Are you sure you want to exit?") .setCancelable(false) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { MyActivity.this.finish(); } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = builder.create(); 

que he encontrado en este tutorial de Android:

http://developer.android.com/guide/topics/ui/dialogs.html

Funcionó maravillas para mí.

PJ_Finnegan

  • ¿Cuántos tipos de contexto en android y qué es mejor utilizar
  • Uso del contexto de la aplicación en todas partes?
  • Carga de contexto de un archivo APK en Android
  • SQlite Database: No se puede encontrar el contexto
  • Uso del contexto para iniciar otra actividad
  • Android toast.makeText error de contexto
  • Llamando context.getResources () devuelve null
  • Cómo pasar el contexto de la aplicación dentro Singleton y SharedPreferences Clases
  • Intenta invocar el método virtual 'java.lang.String android.content.Context.getPackageName ()' en una referencia de objeto nulo
  • Android Intent Context Confusing
  • Contexto dentro de un Runnable
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.