android preferences用法示例

本文概述

  • Android偏好设置示例
Android共享首选项用于存储和检索原始信息。在android中,字符串,整数,长整数,数字等被视为原始数据类型。
Android共享首选项用于将数据存储在键和值对中,以便我们可以基于键来检索值。
它广泛用于从用户那里获取信息,例如在设置中。
Android偏好设置示例让我们看一个简单的android共享首选项示例。
android preferences用法示例

文章图片
activity_main.xml从面板上拖动一个textview和两个按钮。
< ?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.srcmini.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它是在res / values目录中创建的。
< ?xml version="1.0" encoding="utf-8"?> < resources> < string-array name="listOptions"> < item>English< /item> < item>Hindi< /item> < item>Other< /item> < /string-array>< string-array name="listValues"> < item>English Language< /item> < item>Hindi Language< /item> < item>Other Language< /item> < /string-array> < /resources>

prefs.xml【android preferences用法示例】它在res / 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>

主要活动类
package example.srcmini.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类
package example.srcmini.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
< ?xml version="1.0" encoding="utf-8"?> < manifest xmlns:android="http://schemas.android.com/apk/res/android" package="example.srcmini.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> < activityandroid:name=".PrefsActivity" android:theme="@android:style/Theme.Black.NoTitleBar" > < /activity> < /application>< /manifest>

输出:
android preferences用法示例

文章图片
android preferences用法示例

文章图片
android preferences用法示例

文章图片
android preferences用法示例

文章图片

    推荐阅读