2017-12-21 3 views
1

Ich versuche den Wert einer Textansicht zu ändern, die in einer XML-Datei für alle Layouts definiert ist, die die obige Datei verwenden. Die XML-Datei dient als Kopfzeile für alle Seiten und ich versuche, den Benutzernamen in der Header-Datei anzuzeigen, ohne diesen Wert manuell in jeder Aktivitätsdatei festlegen zu müssen.Ändern Sie den Wert der Textansicht für alle Layouts mit derselben Ressourcendatei.

textView textElement = (TextView) findViewById(R.id.user_id); 
    String user_id_string = Integer.toString(user_id); 
    textElement.setText(user_id_string); 

Von meinem Verständnis kann man nicht den tatsächlichen Wert der Datei Ressource ändern und die oben ändert nur den Wert für das spezifische Layout. Wie kann ich das tun? Vielen Dank!

+0

Was ist "die obige Datei"? – HSchmachty

+0

deklarieren Sie eine Zeichenfolge in Ihrer Anwendungsklasse und weisen Sie den Wert zu und verwenden Sie diesen Wert dann überall in Ihrem gesamten Projekt –

Antwort

0

SharedPreferences können Ihnen helfen.

In der Layout-Aktivität, in der Sie Benutzer-ID erhalten, speichern Sie den Wert in SharedPreference Variable.

Im Rest der Layout-Aktivitäten füllen Sie den Wert aus SharedPreferences in onResume().

0

Sie haben recht - es gibt keine spezifischen Optionen im Android SDK, um genau das zu erreichen, was Sie möchten.

Aber immer noch können Sie dieses Problem mit einer einfachen Kapselung lösen - einfach erstellen Basis ActivityWithHeader Klasse und implementieren Einstellung der Header dort. Und verwenden Sie es als Eltern für Ihre anderen Activities, die diese Logik benötigt.

Auch aus dem Kontext Ihrer Frage Ich denke, Sie diese Links hilfreich sein können:

Re-using Layouts

Data Binding Library

Verwandte Themen