您的位置:首页 > Web前端

PreferenceActivity简单用法

2016-08-16 22:32 357 查看
Android3.0以前采用PreferenceActivity ,3.0以后采用PreferenceFragment,之后讲解,今天只写PreferenceActivity,大伙凑合看吧,能学点学点

很简单只需要继承PreferenceActivity,然后采用addPreferencesFromResource(R.xml.preferences);加载布局即可

activity代码:

package com.example.preferenceactivity;

import android.app.Activity;

import android.content.Intent;

import android.content.SharedPreferences;

import android.os.Bundle;

import android.preference.PreferenceManager;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

private Button showAll;

private Button show;

private TextView list;

private TextView edit;

private TextView checkbox;

private Button removeOne;

private Button clearAll;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initView();

initListener();

}

private void initView() {

// TODO Auto-generated method stub

showAll = (Button) findViewById(R.id.showAll);

show = (Button) findViewById(R.id.show);

removeOne = (Button)findViewById(R.id.removeOne);

clearAll = (Button)findViewById(R.id.clearAll);

checkbox = (TextView) findViewById(R.id.checkout);

list = (TextView) findViewById(R.id.list);

edit = (TextView) findViewById(R.id.edit);

}

private void initListener() {

// TODO Auto-generated method stub

showAll.setOnClickListener(this);

show.setOnClickListener(this);

removeOne.setOnClickListener(this);

clearAll.setOnClickListener(this);

}

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

switch (v.getId()) {

//展示所有

case R.id.showAll:

showAll();

break;

//删除一个

case R.id.removeOne:

removeOne();

break;

//清空所有

case R.id.clearAll:

clearAll();

break;

//展示数据

case R.id.show:

showResult();

break;

default:

break;

}

}

//显示所有配置

private void showAll() {

startSetting("showAll");

}

//删除一个配置

private void removeOne() {

// TODO Auto-generated method stub

startSetting("removeOne");

}

//清除所有配置

private void clearAll() {

// TODO Auto-generated method stub

startSetting("clearAll");

}

public void startSetting(String text) {

// TODO Auto-generated method stub

Intent intent = new Intent(getApplicationContext(), Setting.class);

intent.putExtra("choose", text);

startActivity(intent);

}

//获取sp中系统保存的值

@SuppressWarnings("deprecation")

private void showResult() {

// TODO Auto-generated method stub

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);

boolean b = sharedPreferences.getBoolean("fuxuan", false);

checkbox.setText(b+"");

String list1 = sharedPreferences.getString("danxuan", "haha");

list.setText(list1);

String editbox = sharedPreferences.getString("edit", "bianji");

edit.setText(editbox);

}

}

setting代码:

public class Setting extends PreferenceActivity {

@SuppressWarnings("deprecation")

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Intent intent = getIntent();

String extra = intent.getStringExtra("choose");

switch (extra) {

case "showAll":

addPreferencesFromResource(R.xml.preferences);

break;

case "removeOne":

addPreferencesFromResource(R.xml.preferences);

//删除一个ListPreference以此为例

PreferenceCategory category = (PreferenceCategory) findPreference("duoge");

category.removePreference(findPreference("danxuan"));

break;

case "clearAll":

//删除所有配置信息

addPreferencesFromResource(R.xml.preferences);

getPreferenceScreen().removeAll();

break;

default:

break;

}

}

}

在res目录下创建一个xml文件夹,在文件夹下创建文件preferences.xml,里面内容如下

<PreferenceScreen

xmlns:android="http://schemas.android.com/apk/res/android"

android:key="screen" >

<PreferenceCategory

android:title="个人"

android:key="geren"

>

<CheckBoxPreference

android:key="fuxuan"

android:title="复选框"

android:summaryOn="选择上了"

android:summaryOff="么选择"

android:icon="@drawable/ic_launcher"

/>

</PreferenceCategory>

<PreferenceCategory

android:title="公司"

android:key="duoge"

>

<ListPreference

android:key="danxuan"

android:title="单选框"

android:summary="这是单选框"

android:entries="@array/name"//这个参数和下面这个参数一定要写,不写报错

android:entryValues="@array/name"

/>

<EditTextPreference

android:key="edit"

android:title="编辑栏"

android:summary="随便写写啦"

android:dialogTitle="编辑"

android:dialogMessage="hh"

android:dialogIcon="@drawable/ic_launcher"

/>

</PreferenceCategory>

</PreferenceScreen>

在values下创建文件arrays.xml,里面内容如下:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string-array name="name">

<item>mifeilong</item>

<item>zhangxue</item>

<item>wujing</item>

</string-array>

</resources>

主activity布局activity_main里面内容如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

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="com.example.preferenceactivity.MainActivity" >

<Button

android:text="showAll"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/showAll"

/>

<Button

android:id="@+id/removeOne"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="removeOne"/>

<Button

android:id="@+id/clearAll"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="clearAll"/>

<Button

android:text="show"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/show"

/>

<TextView

android:id="@+id/checkout"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="checkbox" />

<TextView

android:id="@+id/list"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="list" />

<TextView

android:id="@+id/edit"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="checkbox" />

</LinearLayout>

好了大功告成,就是这么简单,赶紧上手试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: