Java cómo usar métodos de actividad en otra clase

Por ejemplo, tengo una clase de actividad. En esta clase tengo algunas variables y me gustaría usarlas en otra clase. Este es el código:

public class SearchView { private MenuActivity menuActivity; public SearchView() { menuActivity = new MenuActivity(); menuActivity.searchButton = (ImageView) menuActivity.findViewById(R.id.searchButton); } } 

La última línea me da una NullPointerException . Sé que necesito inicializarla pero cómo puedo inicializar una actividad?

Tienes diferentes opciones …

El primero:

Crear un getter para obtener valores de las clases:

 public MenuActivity getMenuActivityVar(){ return this.MenuActivity; } 

De otra actividad usando este método como este:

 //Other activity or class //Declare a new var as your class SearchView sView = new SearchView(); MenuActivity nMenu = sView.getMenuActivityVar(); 

Segundo:

En este caso es un método estático significa que todas las vars estáticas tienen un valor estático que no es necesario declarar una nueva clase de este porque es estático.

 public static class SearchView {{ public static MenuActivity menuActivity; . . } 

Con este cambio puede llamar a esta var usando:

 //This call it's do it from other activity MyNewVar = SearchView.MenuActivity; 

El tercero:

 public class SearchView { public MenuActivity menuActivity; } 

De la otra actividad al crear una clase como esta:

 SearchView sView = new SearchView(); //In this moment your var are null. 

Después, si modificas esta var en tu clase de métodos por ejemplo, puedes obtener var usando esto:

 MenuActivity MyNewMenu = sView.menuActivity; 

Creo que la mejor opción es primero, es la parte más importante de getters de clases y setters de las clases. Dime si te ayudé y una buena programación!

 public class SearchView { private MenuActivity menuActivity; public SearchView(Activity activityRef) { MenuActivity.searchButton = (ImageView) activityRef.findViewById(R.id.searchButton); } } 

Y declarar searchButton como public static in activity.

 public class MenuActivity extends Activity { public static Button searchButton; @Override protected void onCreate() { SearchView searchView = new SearchView(this); } } 

Espero que te ayude. Hágamelo saber una vez que haya terminado.

Si desea que el valor de la variable pase a la siguiente actividad utilizando intents. Si es un valor estático lo hace en el archivo constante independiente y lo utiliza con el nombre de la clase. Si se trata de una vista, haga uso de la vista de nuevo en la siguiente actividad.

  • Cómo enviar correo electrónico con un enlace para abrir la aplicación de Android
  • Obtener ubicación de la imagen - Cámara Phonegap
  • ¿Qué pasó con la java de Emacs?
  • ¿Cómo agregar la imagen en un texto de TextView?
  • Cómo utilizar setEmptyView () con el diseño de lista personalizada en ListFragment
  • Static static String definida en una interfaz no evaluada en tiempo de compilación - Android
  • ¿Cómo empaquetar y vincular OpenCV binares y OpenCV Java SDK para Android Studio?
  • Referencia de método llama método incorrecto
  • Android 2.2 Webview hace que OpenGL ES API no tenga ningún contexto actual (registrado una vez por hilo)
  • Androide; Declarar edittext en el cuerpo de la clase (Fuera de cualquier método)
  • Android: ¿Cómo leer el archivo en bytes?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.