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?
- Instancias android.os.StrictMode = 2; Límite = 1
- Cómo detectar todos los dispositivos conectados en una red WiFi desde la aplicación para Android
- ¿Cómo puedo desarrollar para Android en Emacs?
- Cómo incrustar el servidor i-jetty en la aplicación Android?
- ¿Existe algún #IF y #CONST equivalente .NET en Java / Android?
- ¿Por qué mi implementación de pbkdf2 es tan lenta (vs. SQLCipher)?
- Android GoogleMaps V2 MarkerDemo IllegalStateException no incluye puntos
- Múltiples archivos dex - La conversión a formato Dalvik falló - No se puede ejecutar dex
- ¿Cómo puedo cero-ise una clave secreta en java?
- Carpeta de activos en Android Studio Unit Test
- Groovy, Scala, Clojure, etc scripts en Android
- "Error de parámetro de línea de comandos no válido" al intentar hacer un ejemplo de mundo hola para Android
- Algoritmo para generar patrones de vibración que van en intensidad en Android?
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.
- Necesito llamar a un número perticular en los contactos
- Android cierre y apertura de base de datos SQLite en el nivel de aplicación