Dire che ho due attività in un'applicazione Android, EditPerson
e EditEmployee
.È possibile condividere in modo sicuro l'ID di una vista Android su più attività?
Sembrerebbe naturale che l'attività EditPerson
sia una classe base per l'attività EditEmployee
e definisca metodi per il marshalling dei dati da e verso le Viste definite nel layout. L'implementazione dell'attività EditPerson
spingerebbe (ad esempio) il campo "Nome" ae da un elemento EditText
. Le versioni EditEmployee
chiamerebbero la versione della classe base e quindi eseguiranno il marshalling dei propri campi specializzati (ad esempio un id fiscale, ecc.).
Per facilitare il codice condiviso, entrambe le attività dovrebbero disporre di una risorsa di layout che definisca una o più coppie di elementi EditText
che condividono lo stesso id. cioè in layout\edit_person.xml
non ci sarebbe:
<EditText android:id="@+id/name_editor" />
E poi nel layout\edit_employee.xml
ci sarebbe qualcosa di simile:
<EditText android:id="@+id/name_editor" />
<EditText android:id="@+id/tax_id_editor" />
<!-- etc. -->
Dal momento che il "Dipendente" è una "persona", e ci sono campi in comune (marshalling via ereditarietà), sembrerebbe che l'ID assegnato ("name_editor" nell'esempio precedente) debba essere unico nell'ambito di un'attività (o di un layout?).
Dal mio test, questo sembra funzionare, ma sono paranoico che ci sarebbe un effetto collaterale involontario a questo approccio e l'uso di id di elementi di layout ambigui. Qualcuno può confermare che questa è una pratica sicura e/o sottolineare come alla fine farà esplodere la mia applicazione? Qualcuno ha mai fatto cose simili?
Grazie per aver condiviso la tua esperienza. Dato che sono ancora piuttosto nuovo nel mondo di Android, a volte è più difficile avere un'idea di quale sia un approccio sano. – el2iot2