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

  • ¿Cómo puedo llamar a getContentResolver en android?
  • ¿Por qué mi contexto en mi Fragmento es nulo?
  • Fugas de contexto de Android en AsyncTask
  • Android: Inicie el servicio con Context.startService vs PendingIntent.getService
  • ¿Cómo obtener mi contexto de actividad?
  • ¿Alguien puede explicar la diferencia entre pasar el contexto de la actividad a una clase interna y referenciarla con MyActivity.this?
  • Contexto dentro de un Runnable
  • ¿Cómo obtener un método llamado con diferentes parámetros?
  • Android toast.makeText error de contexto
  • ¿Por qué se extiende ImageView marcado como error?
  • Uso de SharedPreferences con diferentes contextos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.