Domanda

Ho questa domanda riguardante le attività Android e AndroidManifest.xml. La domanda è stata quando stavo lavorando con i servlet Java e volevo creare un "modulo basato" o qualcosa di simile al server basato su plugin. Questo funziona bene, e posso caricare dinamicamente i servlet che voglio, utilizzando un approccio di codice simile a questo: Aggiungere dinamicamente un servlet al ServletConfig . I servlet vengono trovati dinamicamente e mappati durante l'avvio del server.

La domanda qui non è come trovare le attività corrette o come creare una nuova istanza di esse o come avviarle, quella parte che ho capito. Posso Iterare i miei pacchetti e trovare le classi di attività appropriate, creare nuovi istanze di loro e aggiungerli a un elenco.

Ho usato un interface che tutte le attività devono implementare al fine di essere un'attività valida. In questo modo, posso creare nuove parti, estensioni o nuove funzionalità per la mia applicazione, e tutto funziona. Nella mia applicazione ho un elenco di pulsante che gli utenti possono fare clic su e l'elenco dei pulsanti viene generato aggiungendoli alla mia vista utilizzando 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));
}
.

dove content viene dichiarato come

List<MyActivityInterface> content;
.

e ListButtonAdapter estende BaseAdapter.

Quindi nessun problema lì. Il problema è che devo dichiarare ognuna e ogni singola delle mie attività in AndroidManifest.xml. Quel file è come una grande lista di possibili activities da visualizzare, e il tipo di disordinato, quindi non ho intenzione di visualizzare il codice qui.

Mi rendo conto che dovrò aggiungere un'attività al manifest, ma speravo che l'unica attività dovrebbe essere sufficiente. Il mio approccio può in molti modi di essere considerato come Pattern del controller anteriore , dove ciascuna delle attività è Responsabile del caricamento e di visualizzare l'acitività di cui hanno bisogno.

Sto semplicemente chiedendo se è persino possibile registrare dinamicamente le attività nel manifest (o consentire loro di funzionare in un altro modo), e se no, c'è qualche altra soluzione valida?

È stato utile?

Soluzione

Android richiede che ogni attività sia registrata nel tuo file AndroidManifest.xml in anticipo.Quando è stato distribuito, la tua app vivrà su un dispositivo come file .apk, che non può essere modificato (oltre ad essere aggiornato / sostituito con un nuovo APK).

Se capisco correttamente la domanda, semplicemente non vuoi dover elencare un numero elevato di attività nel tuo file manifest? frammenti Non è necessario registrarsi nel file manifest, quindi se il tuo obiettivoè quello di scambiare dinamicamente i componenti UI, questa sarebbe la risposta.I frammenti sono disponibili Torna a 1,6 tramite Libreria di supporto .

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top