本文概述
- Android偏好设置示例
Android共享首选项用于将数据存储在键和值对中,以便我们可以基于键来检索值。
它广泛用于从用户那里获取信息,例如在设置中。
Android偏好设置示例让我们看一个简单的android共享首选项示例。
文章图片
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内部存储示例
- android alarmmanager用法
- android service使用教程
- android弹出菜单的例子
- android显式intent示例
- android上下文菜单示例
- android选项菜单示例
- android的fragment片段
- android共享app数据