{"id":2012,"date":"2021-03-31T08:22:06","date_gmt":"2021-03-31T08:22:06","guid":{"rendered":"https:\/\/www.art-events.de\/weblog\/?page_id=2012"},"modified":"2021-03-31T08:25:47","modified_gmt":"2021-03-31T08:25:47","slug":"android-programmieren-globale-variablen-bei-android","status":"publish","type":"page","link":"https:\/\/www.art-events.de\/weblog\/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-large wp-image-1909\" src=\"https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/01\/210126android-1024x674.jpg\" alt=\"\" width=\"640\" height=\"421\" srcset=\"https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/01\/210126android-1024x674.jpg 1024w, https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/01\/210126android-300x197.jpg 300w, https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/01\/210126android-768x505.jpg 768w, https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/01\/210126android.jpg 1271w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/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><a href=\"https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/Globale-Variablen-unter-Android.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1955\" src=\"https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/Globale-Variablen-unter-Android.jpg\" alt=\"\" width=\"580\" height=\"514\" srcset=\"https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/Globale-Variablen-unter-Android.jpg 580w, https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/Globale-Variablen-unter-Android-300x266.jpg 300w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><\/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\" target=\"_blank\" rel=\"https:\/\/youtu.be\/sFpHvdpzgVE noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1957 size-large\" src=\"https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/210317vid2-1024x648.jpg\" alt=\"\" width=\"640\" height=\"405\" srcset=\"https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/210317vid2-1024x648.jpg 1024w, https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/210317vid2-300x190.jpg 300w, https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/210317vid2-768x486.jpg 768w, https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/210317vid2.jpg 1314w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/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\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1958 size-large\" src=\"https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/210317vid1-1024x643.jpg\" alt=\"\" width=\"640\" height=\"402\" srcset=\"https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/210317vid1-1024x643.jpg 1024w, https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/210317vid1-300x189.jpg 300w, https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/210317vid1-768x483.jpg 768w, https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/03\/210317vid1.jpg 1305w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/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>Text und Entwurf. (c) AE SYSTEME Testcenter<br \/>\nHans-J. Walter\u00a0<a href=\"mailto:hjw@terminal-systems.de\">hjw@terminal-systems.de<\/a><\/p>\n<p><em>Hinweis: Alle Angaben ohne Gew\u00e4hr. Diese Beschreibung bezieht sich auf unsere Installation und stellt keine Bewertung der verwendeten Techniken da.\u00a0<\/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 [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2012","page","type-page","status-publish","hentry","entry"],"_links":{"self":[{"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/pages\/2012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/comments?post=2012"}],"version-history":[{"count":0,"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/pages\/2012\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/media?parent=2012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}