Android PreferenceActivity


一、目标

JumpToPreferenceActivity.java跳转到MyPreferenceActivity.java.

MyPreferenceActivity.java是应用设置Activity.

因为要和另一个项目关联,所以用了Intent,这里Intent纯粹鸡肋,关键是PreferenceActivity的使用

二、工程文件结构

JumpToPreferenceActivity.java引用main.xml;

MyPreferenceActivity.java引用setting.xml;

setting.xml中的ListPreference引用/res/values/array.xml中的string-array

三、JumpToPreferenceActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

package com.lucux.prefrence;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

publicclass JumpToPreferenceActivity extends Activity{
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button jumpToPrefrenceBtn = (Button)findViewById(R.id.jumpToPrefrenceBtn);
jumpToPrefrenceBtn.setOnClickListener(new JumpToPrefOnClickListener());
}
publicclass JumpToPrefOnClickListener implements OnClickListener {

@Override
publicvoid onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass( JumpToPreferenceActivity.this,MyPreferenceActivity.class );
JumpToPreferenceActivity.this.startActivity( intent );
}

}
}

四、MyPreferenceActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13

package com.lucux.prefrence;

import android.os.Bundle;
import android.preference.PreferenceActivity;

publicclass MyPreferenceActivity extends PreferenceActivity {
/** Called when the activity is first created. */
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.setting);
}
}

五、AndroidManifest.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

<?xmlversion="1.0"encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="com.lucux.prefrence"
android:versionCode="1"
android:versionName="1.0">

<uses-sdkandroid:minSdkVersion="8"/>

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<activity
android:name=".JumpToPreferenceActivity"
android:label="@string/app_name">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN" />

<categoryandroid:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity
android:name=".MyPreferenceActivity">
</activity>

</application>

</manifest>

六、mail.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"/>
<Button
android:id="@+id/jumpToPrefrenceBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="跳转到设置"/>
</LinearLayout>

七、/res/xml/setting.xml

ListPreference中的属性

android:entries="@array/entries_repeat" 显示给用户的内容
android:entryValues="@array/entriesvalue_repeat" 实际传给java代码的值

在/res/values/array.xml中定义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

<?xmlversion="1.0"encoding="utf-8"?>
<PreferenceScreenxmlns:android="http://schemas.android.com/apk/res/android">

<PreferenceCategoryandroid:title="提醒设置">
<CheckBoxPreference
android:key="setVibrate"
android:title="振动"
android:summaryOn="开启"
android:summaryOff="关闭"
android:defaultValue="true"
/>
<CheckBoxPreference
android:key="setRingtone"
android:title="铃声"
android:summaryOn="开启"
android:summaryOff="关闭"
android:defaultValue="true"
/>
<RingtonePreference
android:key="chooseRingtone"
android:title="选择铃声"
android:summary="还书提醒铃声"
/>
</PreferenceCategory>

<PreferenceCategoryandroid:title="再响设置">
<ListPreference
android:key="setRepeat"
android:title="再响"
android:summary="选择几天后再次提醒"
android:dialogTitle="选择几天后再次提醒"
android:entries="@array/entries_repeat"
android:entryValues="@array/entriesvalue_repeat"
/>
</PreferenceCategory>

<PreferenceCategoryandroid:title="期限设置">
<ListPreference
android:key="setDeadline"
android:title="还书期限"
android:summary="系统会在期限时间后提醒您还书"
android:dialogTitle="选择还书期限"
android:entries="@array/entries_deadline"
android:entryValues="@array/entriesvalue_deadline"
/>
</PreferenceCategory>

</PreferenceScreen>

八、array.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

<?xmlversion="1.0"encoding="utf-8"?>
<resources>
<string-arrayname="entries_repeat">
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
</string-array>
<string-arrayname="entriesvalue_repeat">
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
</string-array>

<string-arrayname="entries_deadline">
<item>10</item>
<item>20</item>
<item>30</item>
<item>40</item>
<item>50</item>
<item>60</item>
<item>70</item>
<item>80</item>
<item>90</item>
<item>100</item>
</string-array>
<string-arrayname="entriesvalue_deadline">
<item>10</item>
<item>20</item>
<item>30</item>
<item>40</item>
<item>50</item>
<item>60</item>
<item>70</item>
<item>80</item>
<item>90</item>
<item>100</item>
</string-array>

</resources>

九、效果图

优质内容筛选与推荐>>
1、cookie标准话
2、C++ readdir、readdir_r函数
3、《OpenGL编程指南》示例笔记--序
4、HDU1686 KMP模板
5、函数式编程语言


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn