4.1深入理解Activity与Fragment

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加载具体的选项设置。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值