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ál es la diferencia entre esto, getContext () y getActivity ()?
  • Necesidad de Contexto en clases sin actividad
  • ¿Forma estática de obtener 'Contexto' en Android?
  • Cómo comparar los objetos de contexto de las dos actividades diferentes ..?
  • ¿Cómo obtener mi contexto de actividad?
  • Excepción de puntero nulo iniciando IntentService
  • ¿Cómo usar las Preferencias Compartidas en MVP sin Dagger y no hacer que Presenter dependa del contexto?
  • ¿Cómo puedo acceder a la UI de la actividad de mi clase?
  • Obtenga el contexto de aplicación de la clase singleton de no actividad
  • ¿Tengo fugas de contexto?
  • 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.