2010-07-27 2 views
7

Angenommen, ich habe zwei Aktivitäten in einer Android-Anwendung, EditPerson und EditEmployee.Kann die ID einer Android View sicher über mehrere Aktivitäten verteilt werden?

Es scheint natürlich zu sein, dass die Aktivität EditPerson eine Basisklasse für die Aktivität EditEmployee ist und Methoden definiert, die Daten zu und von den im Layout definierten Ansichten übertragen. Die Implementierung der Aktivität EditPerson würde (zum Beispiel) das Feld "Name" an und von einem EditText-Element drücken. Die EditEmployee-Versionen würden die Basisklassenversion aufrufen und dann ihre eigenen spezialisierten Felder (sagen wir eine Steuer-ID usw.) marshallen.

Um den gemeinsamen Code zu vereinfachen, müssten beide Aktivitäten über eine Layout-Ressource verfügen, die ein oder mehrere Paare von EditText Elementen mit derselben ID definiert. dh in layout\edit_person.xml da wären:

<EditText android:id="@+id/name_editor" /> 

Und dann in layout\edit_employee.xml es so etwas wie sein würde:

<EditText android:id="@+id/name_editor" /> 
<EditText android:id="@+id/tax_id_editor" /> 
<!-- etc. --> 

Seit der "Mitarbeiter" ist eine "Person", und es gibt Felder gemeinsam (gemarshallte via Vererbung), es scheint so, als ob die zugewiesene ID ("name_editor" im obigen Beispiel) nur im Rahmen einer Aktivität (oder eines Layouts?) eindeutig sein muss.

Von meinen Tests scheint dies zu funktionieren, aber ich bin paranoid, dass es eine unbeabsichtigte Nebenwirkung zu diesem Ansatz und Verwendung von mehrdeutigen Layoutelement IDs geben würde. Kann jemand bestätigen, dass dies eine sichere Praxis ist und/oder aufzeigen, wie es letztendlich meine Bewerbung sprengen wird? Hat jemand jemals ähnliche Dinge getan?

Antwort

6

Es ist üblich und in Ordnung zu verwenden. Besonders wenn Sie Code/Klassen wiederverwenden möchten, aber unterschiedliche Layouts verwenden.

+0

Vielen Dank für Ihre Erfahrungen. Da ich in der Android-Welt noch ziemlich neu bin, ist es manchmal schwieriger, einen Sinn für einen vernünftigen Ansatz zu bekommen. – el2iot2

Verwandte Themen