obtiene el objeto Activity mientras está en el contexto View
Este es un seguimiento de este post:
findViewById en una subclase SurfaceView throwing RuntimeException
- ¿Cuál es la mejor manera de obtener el contexto?
- Android: Objeto de contexto
- ¿Cuándo se llama a getApplicationContext () de la clase Application?
- ¿Hay una diferencia entre getContext de Fragment y getContext del contenedor pasado a onCreateView of Fragment?
- Fugas de contexto de Android en AsyncTask
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.
- ¿Por qué AndroidTestCase.getContext (). GetApplicationContext () devuelve null?
- Copiar tema de otra aplicación
- Necesidad de Contexto en clases sin actividad
- Android: ProgressDialog no se muestra
- Contexto de actividad de acabado android
- ¿Qué es "Contexto" en Android?
- Android JUnit4 Pruebas - ¿Dónde obtener el contexto de?
- Obtención del contexto de la actividad en un android de clase de no actividad
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 analizar un JSONArray de JSONObjects en JAVA?
- Cómo ampliar / reducir un ImageView (sin utilizar Canvas) en android