{"id":12265,"date":"2022-09-05T00:24:36","date_gmt":"2022-09-04T22:24:36","guid":{"rendered":"https:\/\/www.terminal-systems.de\/wp\/?p=12265"},"modified":"2025-06-18T18:15:41","modified_gmt":"2025-06-18T16:15:41","slug":"android-programmieren-globale-variablen-bei-android","status":"publish","type":"post","link":"https:\/\/www.terminal-systems.de\/wp\/android-programmieren-globale-variablen-bei-android\/","title":{"rendered":"Android programmieren: Globale Variablen bei Android"},"content":{"rendered":"<p><a href=\"https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/01\/210126android.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/01\/210126android.jpg\" width=\"1271\" height=\"836\" \/><\/a><\/p>\n<p>Hier geht es darum, wie ich unter Android globale Variablen und Werte speichern kann. F\u00fcr den Interessierten: wenn dein Programm aus mehreren Fenstern (Android: Activities) besteht, willst du vielleicht zwischen den Fenstern Werte austauschen. Zum Beispiel soll in Fenster1 ein Benutzer (User) eingegeben werden, der dann in Fenster2 gespeichert wird.<\/p>\n<p>Doch manchmal sollen Variablen auch ihren Wert behalten, wenn die Software beendet wird und beim n\u00e4chsten Mal zur Verf\u00fcgung stehen. Beispiele sind der High Score in Spielen, oder eine Seriennummer, die gewisse Funktionen in der Software frei schaltet.<\/p>\n<p>Android bietet daf\u00fcr verschiedene M\u00f6glichkeiten:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/Globale-Variablen-unter-Android.jpg\" width=\"580\" height=\"514\" \/><\/p>\n<p><strong>Die Sache mit Intent<\/strong><\/p>\n<p>Intent definieren, Variablen speichern und neue Activity mit Intent aufrufen:<\/p>\n<blockquote>\n<pre>Intent intent = new Intent(this, ActivityErfassung1.class);\r\nintent.putExtra(\"ActionId\", getString(R.string.s_abgang));\r\nintent.putExtra(\"User\", user);\r\nstartActivity(intent);<\/pre>\n<\/blockquote>\n<p>Konsequenterweise in der neuen Activity dann die Werte aus dem Intent abrufen, damit ihr sie verwenden k\u00f6nnt. Im Beispiel wird der Wert f\u00fcr ActionID gleich in einem TextView angezeigt w\u00e4hrend der Wert f\u00fcr User in einen String gespeichert wird:<\/p>\n<blockquote>\n<pre>Intent intent = getIntent();\r\nString ActionText = intent.getStringExtra(\"ActionId\");\r\n((TextView) findViewById(R.id.textView_header)).setText(ActionText);\r\nString User = intent.getStringExtra(\"User\");<\/pre>\n<\/blockquote>\n<p>Wie ihr das mit Intent oder mit Extending the Application Class verwendet, findet ihr hier im YouTube Video:<\/p>\n<p><a href=\"https:\/\/youtu.be\/sFpHvdpzgVE\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/210317vid2-768x486.jpg\" width=\"768\" height=\"486\" \/><\/a><\/p>\n<p><strong>Shared Preferences<\/strong><\/p>\n<p>Werte mit Shared Preferences speichern, im Beispiel werden die zu speichernden Werte jeweils einem EditText Feld entnommen und dann mit Shared Pref gespeichert:<\/p>\n<blockquote>\n<pre>\/\/Text1 Text2 in Shared Prefs speichern\r\nSharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);\r\nSharedPreferences.Editor e = prefs.edit();\r\nEditText et_feld1 = (EditText) findViewById(R.id.editText_textf1);\r\nEditText et_feld2 = (EditText) findViewById(R.id.editText_textf2);\r\ne.putString(\"TextF1\", et_feld1.getText().toString());\r\ne.putString(\"TextF2\", et_feld2.getText().toString());\r\ne.apply();<\/pre>\n<\/blockquote>\n<p>Und nat\u00fcrlich das Gegenst\u00fcck &#8211; Werte mit Shared Preferences holen, dabei sicherstellen dass ihr auch einen Default Wert bekommt, wenn (noch) keine Werte gespeichert sind. Auch hier gilt: im Beispiel werden die Werte dabei gleich nach dem Auslesen aus Shared Pref in EditText Feldern angezeigt:<\/p>\n<blockquote>\n<pre>\/\/Nun die Texte F1 und F2 holen und anzeigen\r\nSharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);\r\nEditText et_feld1 = (EditText) findViewById(R.id.editText_textf1);\r\nEditText et_feld2 = (EditText) findViewById(R.id.editText_textf2);\r\net_feld1.setText(prefs.getString(\"TextF1\", \"Addon Text1\"));\r\net_feld2.setText(prefs.getString(\"TextF2\", \"Addon Text2\"));<\/pre>\n<\/blockquote>\n<p>F\u00fcr Shared Preferences (wenn die Daten sogar gespeichert bleiben sollen, wenn die Anwendung deaktiv ist) findet sich dann hier das YouTube Video:<\/p>\n<p><a href=\"https:\/\/youtu.be\/0TfcIlSr9Uo\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/210317vid1-768x483.jpg\" width=\"768\" height=\"483\" \/><\/a><\/p>\n<p>Die Liste der M\u00f6glichkeiten ist nat\u00fcrlich nicht vollst\u00e4ndig. Sie zeigt nur einige, die ich gerne verwende &#8211; und wie ich sie verwende. Dabei ist es wie meistens: viele Wege f\u00fchren nach Rom &#8211; und jemand anders wird vermutlich andere Wege finden, sein Ziel zu erreichen.<\/p>\n<p>Siehe hierzu auch: <a href=\"https:\/\/www.terminal-systems.de\/wp\/android-programmieren-variablen-uebergeben\/\">Android Variablen \u00fcbergeben &#8211; Intent und Shared Preferences<\/a><\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-12348 alignnone\" src=\"https:\/\/www.terminal-systems.de\/wp\/wp-content\/uploads\/2022\/09\/220919-pressex291x125.jpg\" alt=\"\" width=\"291\" height=\"125\" \/><\/p>\n<p>Text und Entwurf. (c) <a href=\"https:\/\/www.terminal-systems.de\/\" target=\"_blank\" rel=\"noopener\">AE SYSTEME Testcenter<\/a>, Hans-J. Walter<br \/>\nHans-J. Walter ist Programmierer f\u00fcr Windows DOT.NET \/ C# und Android und als eingetragener, unabh\u00e4ngiger Journalist verantwortlich f\u00fcr Fachberichte \u00fcber Technik u. Entwicklung. <a href=\"mailto:hjw@terminal-systems.de\">hjw@terminal-systems.de<\/a><\/p>\n<p><em>F\u00fcr diese und alle nachfolgenden Seiten gilt ebenso der obligatorische Hinweis: Alle Angaben ohne Gew\u00e4hr. Bilder und Codes zeigen Beispiele. Diese Beschreibung bezieht sich auf unsere Installation und stellt keine Bewertung der verwendeten Techniken da. Fehler und Irrt\u00fcmer vorbehalten!<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hier geht es darum, wie ich unter Android globale Variablen und Werte speichern kann. F\u00fcr den Interessierten: wenn dein Programm aus mehreren Fenstern (Android: Activities) besteht, willst du vielleicht zwischen den Fenstern Werte austauschen. Zum Beispiel soll in Fenster1 ein Benutzer (User) eingegeben werden, der dann in Fenster2 gespeichert wird. Doch manchmal sollen Variablen auch &#8230; <a title=\"Android programmieren: Globale Variablen bei Android\" class=\"read-more\" href=\"https:\/\/www.terminal-systems.de\/wp\/android-programmieren-globale-variablen-bei-android\/\" aria-label=\"Mehr dazu unter Android programmieren: Globale Variablen bei Android\">Weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22,23],"tags":[],"class_list":["post-12265","post","type-post","status-publish","format-standard","hentry","category-android","category-programmierung"],"_links":{"self":[{"href":"https:\/\/www.terminal-systems.de\/wp\/wp-json\/wp\/v2\/posts\/12265","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.terminal-systems.de\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.terminal-systems.de\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.terminal-systems.de\/wp\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.terminal-systems.de\/wp\/wp-json\/wp\/v2\/comments?post=12265"}],"version-history":[{"count":0,"href":"https:\/\/www.terminal-systems.de\/wp\/wp-json\/wp\/v2\/posts\/12265\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.terminal-systems.de\/wp\/wp-json\/wp\/v2\/media?parent=12265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.terminal-systems.de\/wp\/wp-json\/wp\/v2\/categories?post=12265"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.terminal-systems.de\/wp\/wp-json\/wp\/v2\/tags?post=12265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}