4.1Activity继承图:
LauncherActivity:
public class dd extends LauncherActivity{
String names = {"fdsfs","fdsfds"};
Class<?> clazz = {PreferenceActivityTest.class,ExpandableListActivityTest.class};
@Override
public void onCreate(Bundle b){
super.onCreate(b);
//第二个参数 布局文件(注意这里的布局文件描述的是列表的每一行的布局
ArrayAdapter<String> adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,names);
setListAdapter(adapter);
}
//点击返回的Intent,在点击后程序会返回对应的Intent并启动
@Override
public Intent intentForPosition(){
return new Intent(dd.this,class[position]);
}
}
PreferenceActivityTest
package org.crazyit.myapplication;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
import android.widget.Button;
import java.util.List;
/**
* 依赖于LauncherActivityImp 展示程序设置的activity
*/
public class PreferenceActivityTest extends PreferenceActivity {
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
if (hasHeaders()) {
Button button = new Button(PreferenceActivityTest.this);
button.setText("设置参数");
setListFooter(button);
}
}
@Override
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.preference_headers, target);
}
@Override
public boolean isValidFragment(String fragmentName) {
return true;
}
public static class Prefs1Fragment extends PreferenceFragment {
@Override
public void onCreate(Bundle b) {
super.onCreate(b);
addPreferencesFromResource(R.xml.preferences);
}
}
public static class Prefs2Fragment extends PreferenceFragment {
@Override
public void onCreate(Bundle b) {
super.onCreate(b);
addPreferencesFromResource(R.xml.display_prefs);
}
}
}
R.xml.preference_headers
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<RingtonePreference
android:ringtoneType="all"
android:title="设置铃声"
android:summary="选择铃声"
android:showDefault="true"
android:key="ring_key"
android:showSilent="true"></RingtonePreference>
<PreferenceCategory android:title="个人信息设置组">
<EditTextPreference
android:key="name"
android:summary="填写用户名"
android:title="用户名"
android:dialogTitle="您用的用户名字是" />
<ListPreference
android:key="gender"
android:title="性别"
android:summary="选择性别"
android:entries="@array/gender_name_list"
android:entryValues="@array/gender_value_list"
android:dialogTitle="你选择的性别是:" />
<CheckBoxPreference
android:defaultValue="true"
android:key="autoSave"
android:summaryOff="自动保存:关闭"
android:summaryOn="自动保存:开启"
android:title="自动宝保存" />
</PreferenceCategory>
<PreferenceCategory android:title="系统功能组"></PreferenceCategory>
</PreferenceScreen>
R.xml.display_prefs
<?xml version="1.0" encoding="utf-8"?>
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
<header
android:fragment="org.crazyit.myapplication.PreferenceActivityTest$Prefs1Fragment"
android:icon="@drawable/ic_settings_application"
android:title="程序设置相关"
android:summary="设置应用" />
<header
android:fragment="org.crazyit.myapplication.PreferenceActivityTest$Prefs2Fragment"
android:icon="@drawable/ic_setting_display"
android:title="界面显示相关"
android:summary="显示界面设置" />
<header
android:icon="@drawable/ic_setting_display"
android:title="使用Intent"
android:summary="使用Intent启动Activity">
<intent
android:action="android.intent.action.VIEW"
android:data="https://www.baidu.com" />
</header>
</preference-headers>
R.xml.preferences
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="北京灯管组">
<ListPreference
android:key="light"
android:title="灯管强度"
android:summary="选择灯管"
android:dialogTitle="请选择灯管"
android:entries="@array/light_strength_list"
android:entryValues="@array/light_strength_list" />
</PreferenceCategory>
<PreferenceCategory android:title="文字显示组">
<SwitchPreference
android:key="autoScoll"
android:title="自动滚屏"
android:summaryOn="自动滚屏: 开启"
android:summaryOff="自动滚屏:关闭"
android:defaultValue="true" />
</PreferenceCategory>
</PreferenceScreen>
上面的LauncherActivityImp 有两个activity,第一个ExpandableListActivityTest只是一个点击展开的activity。第二个是PreferenceActivityTest,这是一个用于设置的activity,推荐通过activity加载选项设置列表,通过Fragment加载具体的选项设置。