activity_main.xml
Drag one textview and two buttons from the pallete.
File: activity_main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context="example.now.com.preferences.MainActivity">
- <TextView
- android:id="@+id/txtPrefs"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_centerVertical="true"
- android:text="Data:" />
- <Button
- android:id="@+id/storeinformation"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_below="@+id/showinformation"
- android:layout_centerHorizontal="true"
- android:layout_marginTop="18dp"
- android:text="Store Information" />
- <Button
- android:id="@+id/showinformation"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentTop="true"
- android:layout_centerHorizontal="true"
- android:layout_marginTop="17dp"
- android:text="Show Information" />
- </RelativeLayout>
array.xml
It is created inside res/values directory.
File: array.xml
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string-array name="listOptions">
- <item>English</item>
- <item>Urdu</item>
- <item>Other</item>
- </string-array>
- <string-array name="listValues">
- <item>English Language</item>
- <item>Urdu Language</item>
- <item>Other Language</item>
- </string-array>
- </resources>
prefs.xml
It is created inside res/xml directory.
File: prefs.xml
- <?xml version="1.0" encoding="utf-8"?>
- <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
- <PreferenceCategory
- android:summary="Username and password information"
- android:title="Login information" >
- <EditTextPreference
- android:key="username"
- android:summary="Please enter your login username"
- android:title="Username" />
- <EditTextPreference
- android:key="password"
- android:summary="Enter your password"
- android:title="Password" />
- </PreferenceCategory>
- <PreferenceCategory
- android:summary="Username and password information"
- android:title="Settings" >
- <CheckBoxPreference
- android:key="checkBox"
- android:summary="On/Off"
- android:title="Keep me logged in" />
- <ListPreference
- android:entries="@array/listOptions"
- android:entryValues="@array/listValues"
- android:key="listpref"
- android:summary="List preference example"
- android:title="List preference" />
- </PreferenceCategory>
- </PreferenceScreen>
Main Activity Class
File: MainActivity.java
- package example.now.com.preferences;
- import android.content.Intent;
- 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.Button;
- import android.widget.TextView;
- public class MainActivity extends AppCompatActivity {
- TextView textView;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- Button storeinformation = (Button) findViewById(R.id.storeinformation);
- Button showinformation = (Button) findViewById(R.id.showinformation);
- textView = (TextView) findViewById(R.id.txtPrefs);
- View.OnClickListener listener = new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.storeinformation:
- Intent intent = new Intent(MainActivity.this,PrefsActivity.class);
- startActivity(intent);
- break;
- case R.id.showinformation:
- displaySharedPreferences();
- break;
- default:
- break;
- }
- }
- };
- storeinformation.setOnClickListener(listener);
- showinformation.setOnClickListener(listener);
- }
- private void displaySharedPreferences() {
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
- String username = prefs.getString("username", "Default NickName");
- String passw = prefs.getString("password", "Default Password");
- boolean checkBox = prefs.getBoolean("checkBox", false);
- String listPrefs = prefs.getString("listpref", "Default list prefs");
- StringBuilder builder = new StringBuilder();
- builder.append("Username: " + username + "\n");
- builder.append("Password: " + passw + "\n");
- builder.append("Keep me logged in: " + String.valueOf(checkBox) + "\n");
- builder.append("List preference: " + listPrefs);
- textView.setText(builder.toString());
- }
- }
PrefsActivity class
File: PrefsActivity.java
- package example.now.com.preferences;
- import android.os.Bundle;
- import android.preference.PreferenceActivity;
- public class PrefsActivity extends PreferenceActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.prefs);
- }
- }
AndroidManifest.xml
File: AndroidManifest.xml
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="example.now.com.preferences">
- <application
- android:allowBackup="true"
- android:icon="@mipmap/ic_launcher"
- android:label="@string/app_name"
- android:roundIcon="@mipmap/ic_launcher_round"
- android:supportsRtl="true"
- android:theme="@style/AppTheme">
- <activity android:name=".MainActivity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <activity android:name=".PrefsActivity"
- android:theme="@android:style/Theme.Black.NoTitleBar" >
- </activity>
- </application>
- </manifest>