`
wang_peng1
  • 浏览: 3944429 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PreferenceActivity下嵌套PreferenceScreen在其它布局中

 
阅读更多

今天在修改系统代码的时候,系统代码用了PreferenceActivity,出于某种需求,我想把布局PreferenceScreen整个的嵌套在我的一个正常的layout xml中,就好像把PreferenceScreen 作为一个普通的view使用如button一样随便放,开始以为不可行 后来终于找到了替换办法 那就是 把要PreferenceScreen嵌入的地方用一个 

 

  <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

 作为占位符 就可一了

PreferenceScreen 布局保持不变

<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:title="@string/settings">
    <PreferenceCategory
        android:title="@string/clock_settings">
        <!-- <ListPreference
            android:key="clock_style"
            android:title="@string/clock_style"
            android:entries="@array/clock_style_entries"
            android:entryValues="@array/clock_style_values"
            android:defaultValue="@string/default_clock_style"
            android:dialogTitle="@string/clock_style" /> -->
        <CheckBoxPreference
            android:key="automatic_home_clock"
            android:title="@string/automatic_home_clock"
            android:summary="@string/automatic_home_clock_summary"
            android:defaultValue="true" />
        <ListPreference
            android:key="home_time_zone"
            android:entries="@array/timezone_labels"
            android:entryValues="@array/timezone_values"
            android:dialogTitle="@string/home_time_zone_title"
            android:title="@string/home_time_zone" />
    </PreferenceCategory>

    <PreferenceCategory
        android:title="@string/alarm_settings">
        <ListPreference
            android:key="auto_silence"
            android:title="@string/auto_silence_title"
            android:entries="@array/auto_silence_entries"
            android:entryValues="@array/auto_silence_values"
            android:defaultValue="10"
            android:dialogTitle="@string/auto_silence_title" />

       <com.haier.deskclock.SnoozeLengthDialog
            android:key="snooze_duration"
            android:title="@string/snooze_duration_title"
            android:defaultValue="10"/>

        <VolumePreference
            android:title="@string/alarm_volume_title"
            android:dialogTitle="@string/alarm_volume_title"
            android:persistent="false"
            android:streamType="alarm" />

        <ListPreference
            android:key="volume_button_setting"
            android:title="@string/volume_button_setting_title"
            android:dialogTitle="@string/volume_button_setting_title"
            android:entries="@array/volume_button_setting_entries"
            android:entryValues="@array/volume_button_setting_values"
            android:defaultValue="0" />
    </PreferenceCategory>
</PreferenceScreen>

 上面是settings.xml

下面是我最终想要显示的程序

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/setting_bg"
    android:orientation="horizontal">
    
   <RelativeLayout android:layout_width="160dip"
        android:layout_height="match_parent"
        android:background="@drawable/toolbarbg"
        android:paddingTop="30dip">
        
        <ImageView  android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/toolbar_screen_home"
            android:layout_alignParentTop="true"
            android:background="@drawable/toolbar_home" />
        <ImageView  android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/toolbar_screen_back"
            android:layout_below="@id/toolbar_screen_home"
            android:background="@drawable/toolbar_back" />
        
        <ImageView  android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/toolbar_setting"
            android:layout_alignParentBottom="true"
            android:background="@drawable/toolbar_home" />
        
        <ImageView  android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/toolbar_add"
            android:layout_above="@id/toolbar_setting"
            android:background="@drawable/toolbar_home" />
        
     </RelativeLayout>
     
     <LinearLayout android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        
          <LinearLayout android:layout_width="match_parent"
              android:layout_height="130dip"
              android:background="@drawable/titlebar"
              android:paddingTop="15dip"
              android:paddingLeft="30dip"
              android:orientation="vertical">
              
              <TextView  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="Setting - Alarm"
                  android:gravity="left"
                  android:textColor="#fdb200"
                  android:textSize="30sp"
                  android:id="@+id/setting_text"/>
              
              <TextView  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="设置 - 闹钟"
                  android:shadowColor="#000000"
                  android:shadowDy="4"
                  android:gravity="left"
                  android:textColor="#fff6ce"
                  android:textSize="30sp"/>
        
          </LinearLayout>
          
          <LinearLayout android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">
              
             <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
        
          </LinearLayout>
          
         
        
     </LinearLayout>
        
    

</LinearLayout>

 一定要注意listview 还有他的id

然后调用

        addPreferencesFromResource(R.xml.settings);
        setContentView(R.layout.setting_main);

 

分享到:
评论

相关推荐

    Android软件开发之PreferenceActivity中组件的使用

    通过使用PreferenceScreen和相关的Preference元素,开发者可以在布局XML文件中定义各种类型的偏好设置,如CheckBoxPreference、SwitchPreference、EditTextPreference等。 1. **PreferenceScreen**: 这是设置界面的...

    自定义PreferenceActivity

    在Android开发中,`PreferenceActivity`是用于创建设置界面的标准组件。它允许开发者通过XML文件定义各种偏好选项,如开关、单选按钮、多选按钮等,并将它们以活动的形式展示给用户。然而,标准的`...

    PreferenceActivity 类的使用,它可以保存设置

    PreferenceFragment提供了与PreferenceActivity相似的功能,但它可以嵌入到其他Activity中,更适合在现代Android应用中使用。 在实际开发中,我们可能会遇到需要自定义Preference的情况,比如需要添加额外的事件...

    PreferenceActivity简介

    虽然在最新版本的Android中,有其他替代方案,但理解并掌握PreferenceActivity仍然是了解Android设置界面实现原理的关键。通过合理运用,开发者可以快速创建出符合用户习惯的设置界面,提高应用的用户体验。

    Android PreferenceActivity

    4. **导航**:在`PreferenceScreen`中,可以使用`&lt;intent&gt;`标签来定义跳转其他Activity或Intent的行为,这样用户可以在设置界面中进行更复杂的操作,如打开网页、设置应用程序等。 5. **动态更新**:`Preference`类...

    Android 属性页PreferenceActivity的实现

    在Android开发中,`PreferenceActivity`是用于创建用户设置界面的一种特殊类型的Activity。它使得开发者可以轻松地构建具有各种设置选项的界面,如开关、单选按钮、复选框等,而无需从头编写大量的XML和Java代码。...

    自定义PreferenceActivity的样式和界面

    在Android开发中,PreferenceActivity是用于创建设置界面的标准组件,它允许开发者以XML方式定义用户界面,然后在活动中展示这些设置项。然而,系统默认的PreferenceActivity样式可能无法满足所有设计需求,这时我们...

    android中PreferenceActivity详解

    - `PreferenceScreen`:作为PreferenceActivity的根元素,所有其他偏好设置元素应包含于其中。 - `RingtonePreference`:用于设置铃声。 ### 实例分析:MusicPlayerSetting 以“我的位置”设置为例,其XML代码展示...

    PreferenceActivity

    在这个主题下,我们将深入探讨`PreferenceActivity`的工作原理、使用方法以及相关实践。 ### `PreferenceActivity`简介 `PreferenceActivity`继承自`ListActivity`,它会自动将`Preference` XML布局文件中的各项...

    Android PreferenceActivity 学习笔记

    1. 创建布局文件:在res/xml目录下创建一个xml文件,如settings.xml,用于定义PreferenceScreen和其包含的各种Preference元素。每个Preference元素代表设置界面中的一个条目,可以通过属性设置它们的标题、描述、...

    preferenceActivity的简单使用

    使用`PreferenceActivity`可以让开发者避免编写大量的UI代码,只需在XML布局文件中定义偏好设置,然后在代码中加载即可。 ### 2. 创建`PreferenceActivity` 首先,我们需要创建一个新的Activity,并让它继承自`...

    PreferenceActivity 修改成Activity

    在Android开发中,`PreferenceActivity`是用于创建设置界面的一种特殊Activity,它简化了处理设置项的布局和交互。然而,随着Android版本的发展,`PreferenceActivity`逐渐被更灵活的`Fragment`和`Activity`结合的...

    仿IOS的PreferenceActivity界面

    对于PreferenceActivity,可以在res/xml目录下创建一个包含各种Preference的xml文件,然后在Activity中加载这个文件。这样可以将界面结构与代码分离,提高代码的可读性和维护性。 6. **AndroidManifest.xml配置**:...

    继承PreferenceActivity

    标题中的“继承PreferenceActivity”指的是在Android开发中,利用`PreferenceActivity`类来构建设置界面。`PreferenceActivity`是Android SDK提供的一种特殊类型的Activity,它主要用于创建和展示一系列的偏好设置,...

    android PreferenceActivity中的组件源码

    android PreferenceActivity中的组件源码~

    PreferenceActivity存储小dome

    2. **代码集成**:在Activity的onCreate()方法中,加载之前创建的XML布局文件,并将其设置为PreferenceActivity的内容视图。 ```java @Override protected void onCreate(Bundle savedInstanceState) { super....

    Android之PreferenceActivity.doc

    PreferenceActivity在Android开发中主要用于构建设置界面,类似于iOS中的偏好设置。它是一个特殊的Activity,用于展示和管理用户配置项,通常包含各种可交互的控件,如开关按钮、列表选择和输入框等,用于保存用户的...

Global site tag (gtag.js) - Google Analytics