Pregunta

Tengo esta pregunta sobre las actividades de Android y AndroidManifest.xml.La pregunta surgió cuando estaba trabajando con servlets Java y quería crear un servidor "basado en módulos" o algo similar a un servidor basado en complementos.Esto funciona bien y puedo cargar dinámicamente los servlets que quiero, usando un enfoque de código similar a este: Agregue dinámicamente un servlet a servletConfig.Los servlets se encuentran y asignan dinámicamente durante el inicio del servidor.

La cuestión aquí no es cómo encontrar las actividades adecuadas, ni cómo crear una nueva instancia de ellas, ni cómo iniciarlas, esa parte ya la he descubierto.Puedo iterar sobre mis paquetes y encontrar las clases de actividad apropiadas, crear nuevas instancias de ellas y agregarlas a una lista.

He estado usando un interface que todas las Actividades deben implementar para ser una actividad válida.De esa manera, puedo crear nuevas partes, extensiones o nuevas funciones para mi aplicación, y todo funciona.En mi aplicación tengo una lista de botones en los que los usuarios pueden hacer clic, y la lista de botones se genera agregándolos a mi vista usando un ListView.

private void displayLoadedContent() {
    View v = inflateLayout(R.layout.buttonlayout);
    ListView view = (ListView) v.findViewById(R.id.list);
    view.setAdapter(new ListButtonAdapter(this, content));
}

dónde content se declara como

List<MyActivityInterface> content;

y ListButtonAdapter se extiende BaseAdapter.

Entonces no hay problema.El problema es que tengo que declarar todas y cada una de mis actividades en AndroidManifest.xml.Ese archivo es como una gran lista de posibles actividades para mostrar y un poco desordenado, por lo que no mostraré el código aquí.

Me doy cuenta de que tendré que agregar una actividad al manifiesto, pero esperaba que esa actividad fuera suficiente.Mi enfoque puede verse en muchos sentidos como una Patrón del controlador frontal, donde cada una de las actividades se encarga de cargar y mostrar la actividad que necesita.

Simplemente pregunto si es posible registrar actividades dinámicamente en el manifiesto (o permitir que se ejecuten de otra manera) y, en caso negativo, ¿existe alguna otra solución válida?

¿Fue útil?

Solución

Android requiere que cada actividad esté registrada en tu AndroidManifest.xml presentar el expediente con antelación.Cuando se implemente, su aplicación vivirá en un dispositivo como un archivo .apk, que no se puede modificar (aparte de actualizarse o reemplazarse con un nuevo APK).

Si entiendo la pregunta correctamente, ¿simplemente no desea tener que enumerar una gran cantidad de actividades en su archivo de manifiesto? Fragmentos No es necesario estar registrado en el archivo de manifiesto, por lo que si su objetivo es intercambiar dinámicamente los componentes de la interfaz de usuario, esa sería la respuesta.Los fragmentos están disponibles desde 1.6 a través del Biblioteca de soporte.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top