Projekt-Anfragen: Tel: 07022/9319004 info@CodeDocu.de Software Entwicklung in C# WPF Asp.Net Core Vba Excel Word SQL-Server EF Linq, UWP Net
#

App Settings als App Preferences speichern und lesen
 
In Android Java werden Preferences als interner Datenspeicher verwendet um Einstellungen zu speichern und lesen.
Die Einstellungen werden normalerweise über Settings-Einstellungs-Seiten speziell eingestellt und gespeichert.
 
Man kann aber auch die Preferences als permanenten Datenspeicher von Variablen verwenden, wodurch die Werte auch nach Abschalten der App noch erhalten bleiben.
Ein gutes Beispiel ist hier das Passwort und User-Feld bei einer App.
Man wird Passwort und User nicht über eine Settings-Einstellung speichern, sondern direkt in einem Login-Seite.
Also keiner als Settings-Acitivty gestaltete App-Einstellungsseite.
 
Stattdessen wird man die Werte direkt im Login in den App-Speicher als Preferences speichern und an einem andern Ort wieder zur Laufzeit aus den Preferences lesen.

 
 
Android Preferences Datenstruktur
Android Preferences sind wie eine interne Datenbank Tabellen.
Sobald man beim Lesen die Tabelle angibt, kann man aus dierser Preferences Tabelle Werte lesen und schreiben

 
Einstellen der Preferences Tabelle
Wenn eine Android App Werte von den internen Preferences lesen oder schreiben möchte, dann wird beim initialisieren der SharedPreferences angegeben, um welche interne Tabelle es sich handelt.
Im folgenden Code wird auf eine interne Tabelle mit dem Namen „Settings“ gezeigt.
Sobald man Werte in diese Tabelle schreibt, erstellt Android die interne Tabelle sofern diese noch nicht vorhanden war.

settings=context.getSharedPreferences("settings", MODE_PRIVATE);

 
 
Speichern unter Preferences
Zum Speichern verwendet man eine SharedPrefernces Editor.
Beim initialisieren der SharedPreferences wird beim die Tabelle definert.
Mit putString() kann man eine Wert in die Preferences Tabelle speichern.

//< save >
SharedPreferences.Editor edit = settings.edit();
edit.clear();
edit.putString(
"password", sSetting);
edit.commit();
//</ save >


 
 
Lesen von Preferences
Zum Lesen von Werten kann man ganz einfach die Methode getString(key) verwenden.

//----< read setting >----
String sSetting= settings.getString("password","Error");
//----</ read setting >----

 
 
 
Video Tutorial zu den direkten Settings für ein Passwort

 
 
Kompletter MainActivity.java Code

package de.rue25.a2016_10_07_1740_password_setting;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

//< Variables >
Activity context = this;
EditText
editText_Passwort;
SharedPreferences
settings ;
//</ Variables >

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.
activity_main);
//< init >
editText_Passwort=(EditText) findViewById(R.id.editText_Password);
settings=context.getSharedPreferences("settings", MODE_PRIVATE);
//</ init >
}

public void btnSave_onClick(View view) {
//------------< btnSave_onClick() >------------
//< init >
String sSetting=editText_Passwort.getText().toString();
//</ init >

//< save >
SharedPreferences.Editor edit = settings.edit();
edit.clear();
edit.putString(
"password", sSetting);
edit.commit();
//</ save >
//------------</ btnSave_onClick() >------------
}

public void btnRead_onClick(View view) {
//------------< btnRead_onClick() >------------
//----< read setting >----
String sSetting= settings.getString("password","Error");
//----</ read setting >----

//< show as message >
Toast.makeText(this,sSetting,Toast.LENGTH_LONG).show();
//</ show as message >

//------------</ btnRead_onClick() >------------
}
}

 

 
MainActivity.xml

 
Activity_main.xml komplett mit Test Buttons und den Passwort Eingabefeld

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="de.rue25.a2016_10_07_1740_password_setting.MainActivity">

<
TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Password Setting"
android:textSize="24sp"/>

<
TextView
android:text="Password:"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="80dp"
android:id="@+id/lblPassword"
android:textSize="18sp"/>

<
EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:ems="10"
android:layout_alignTop="@+id/lblPassword"
android:layout_toRightOf="@+id/lblPassword"
android:layout_toEndOf="@+id/lblPassword"
android:id="@+id/editText_Password"
android:textSize="18sp"/>

<
Button
android:text="Save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText_Password"
android:layout_alignLeft="@+id/editText_Password"
android:layout_alignStart="@+id/editText_Password"
android:layout_marginTop="33dp"
android:id="@+id/button"
android:onClick="btnSave_onClick"/>

<
Button
android:text="Read"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button"
android:layout_alignRight="@+id/editText_Password"
android:layout_alignEnd="@+id/editText_Password"
android:layout_marginRight="17dp"
android:layout_marginEnd="17dp"
android:id="@+id/btnRead"
android:onClick="btnRead_onClick"/>
</
RelativeLayout>
 

 
Mobile
»
App Settings als App Preferences speichern und lesen
»
Android Settings zu einem App Project zufügen
»
Android Code: Kontakte anfügen mit Person, Email, Telefon mit Batch Operationen
»
Android Studio: Kontakt anfügen mit Hilfe von Android Intent
»
Android Code: Automatisch eine Telefon-Nummer wählen
»
Android App Code: Start Stop von Wlan mit Java Code
»
Android App Code: App soll Wifi anschalten, Intent
»
Android: StartActivity und Intent wie Makros für Apps
»
Android Code: Android Kontakte lesen und in eine ListView speichern
»
Android Java: Angepasste ListView mit eigenem Adapter

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Info@CodeDocu.de