¿Cómo puedo acceder a la UI de la actividad de mi clase?

Tengo una actividad que crea una instancia de objeto de mi clase:

file MyActivity.java: public class MyActivity extends Activity { TextView myView = (TextView)findViewById(R.id.myView); ... Points myPoints new Points(); ... } -------------------------------------------------------------- file Points.java: private class Points { ... HOW TO USE myView HERE ??? ... } -------------------------------------------------------------- 

¿Cómo utilizo los objetos de IU en mi clase (que no amplía una actividad)? ¿Debo pasar algún contexto a mi clase de Puntos? ¿Cómo lo hago, exactamente?

6 Solutions collect form web for “¿Cómo puedo acceder a la UI de la actividad de mi clase?”

Te veo puesto, lo he editado, para solucionar el problema

Espero que ayude

Aquí está la edición:

 file MyActivity.java: public class MyActivity extends Activity { TextView myView ; protected void onCreate(android.os.Bundle savedInstanceState) { myView = (TextView)findViewById(R.id.myView); Points myPoints = new Points(this); myPoints.displayMsg("Hello World !!!"); } } -------------------------------------------------------------- file Points.java: private class Points { protected MyActivity context; //add a constructor with the Context of your activity public Points(MyActivity _context){ context = _context; } public void displayMsg( final String msg){ context.runOnUiThread(new Runnable() { @Override public void run() { context.myView.setText(msg); } }); } } 
  1. Tus Points no pueden ser una clase privada sin ser una clase interna. Así que su código ni siquiera compilar …
  2. Pase la vista como parámetro al constructor de su clase Points :

     public class MyActivity extends Activity { TextView myView = (TextView)findViewById(R.id.myView); Points myPoints new Points(myView); private class Points { public Points(TextView view) { // todo } } } 

Debe hacer todo y devolver el valor a la actividad para manejar la interfaz de usuario en lugar de hacer cualquier cosa relacionada con la interfaz de usuario en el material de punto.

Puede pasar el contexto de la Actividad principal (usando Points(getApplicationContext()); ) a la clase como un parámetro constructor. También puede pasar los elementos de interfaz de usuario específicos que desea manipular.

Una mejor manera de hacerlo, sin embargo, puede ser que los Points no conozcan la Actividad. Tenga sus métodos de Points Llamadas de Actividad y tome las acciones necesarias basadas en la salida del método.

Podrías pasar la vista a tu clase.

 Points myPoints = new Points(myView); private class Points { private TextView mTextView; Points(TextView textView) { this.mTextView = textView; } } 

Yo estaba en el mismo problema .. encontré la forma sencilla ..

  1. Hacer una variable estática y la función …
  2. Llamada de otra clase

TestActivity.java

 public class TestActivity extends Activity { static EditText edit_text1; public void onCreate(Bundle savedInstanceState) { ..... edit_text1 = (EditText) findViewById(R.id.edit_text1); ..... } public static void setMSG(String str) { edit_text1.setText(str); } } 

Test2.java

 TestActivity.setMSG("this is text"); 
  • Fugas de contexto de Android en AsyncTask
  • Uso del contexto en FragmentPagerAdapter
  • ¿Por qué Android utiliza múltiples contextos y cada uno es diferente?
  • Cómo iniciar una Intención si el contexto no es Contexto de la Actividad pero Contexto de la Aplicación
  • Obtención del contexto de la actividad en un android de clase de no actividad
  • Por favor, explícame Clase de contexto en Android
  • ¿Qué es 'Contexto' en android?
  • Carga de contexto de un archivo APK en Android
  • ¿Cómo obtener mi contexto de actividad?
  • Contexto de Android fuera de la clase de actividad
  • obtiene el objeto Activity mientras está en el contexto View
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.