Android软件开发1112.docx

上传人:b****4 文档编号:12207806 上传时间:2023-04-17 格式:DOCX 页数:34 大小:489.29KB
下载 相关 举报
Android软件开发1112.docx_第1页
第1页 / 共34页
Android软件开发1112.docx_第2页
第2页 / 共34页
Android软件开发1112.docx_第3页
第3页 / 共34页
Android软件开发1112.docx_第4页
第4页 / 共34页
Android软件开发1112.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

Android软件开发1112.docx

《Android软件开发1112.docx》由会员分享,可在线阅读,更多相关《Android软件开发1112.docx(34页珍藏版)》请在冰豆网上搜索。

Android软件开发1112.docx

Android软件开发1112

Android软件开发11-12

Android软件开发之PreferenceActivity中的组件(十一)

1.PreferenceActivity介绍

PreferenceActivity继承ListActivity它是以一个列表的形式在展现内容,它最主要的特点是添加Preference可以让控件的状态持久化储存,举个例子比如用户选中checkbox后退出应用然后在进入应用,这时用户希望看到的是checkbox被选中,所以软件须要记录用户每次操作的过程并且持久储存,在进入应用的时候须要判断这些久储存的数据然后将系统控件的状态呈现在UI中。

尤其是软件开发肯定会有一堆设置选项选项,每次进入Activity都去手动的去取储存的数据,这样代码会变得很复杂很麻烦。

这个时候Preference就出来了,它就是专门解决这些特殊的选项保存与读取的显示。

用户每次操作事件它会及时的以键值对的形式记录在SharedPreferences中,Activity每次启动它会自动帮我们完成数据的读取以及UI的显示。

android开发中一共为我们提供了4个组件,分别是CheckBoxPreference组件、EditTextPreference组件、ListPreference组件、RingtonePreference组件,下面我用一个例子一一向同学们介绍一下。

2.CheckBoxPreference组件

CheckBoxPreference选中为true取消选中为false它的值会以boolean的形式储存在SharedPreferences中。

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

>  

  xmlns:

android="  

    

title="CheckBoxPreference">     

    

key="checkbox_0"  

        android:

title="CheckBox_A"  

        android:

summary="这是一个勾选框A" >  

      

    

key="checkbox_1"  

        android:

title="CheckBox_B"  

        android:

summary="这是一个勾选框B" >  

      

      

  

import android.content.Context;  

import android.os.Bundle;  

import android.preference.CheckBoxPreference;  

import android.preference.Preference;  

import android.preference.PreferenceActivity;  

import android.preference.Preference.OnPreferenceChangeListener;  

import android.preference.Preference.OnPreferenceClickListener;  

import android.widget.Toast;  

public class CheckBoxActivity extends PreferenceActivity {  

    Context mContext = null;  

    @Override  

    protected void onCreate(Bundle savedInstanceState) {  

    super.onCreate(savedInstanceState);  

    // 从资源文件中添Preferences ,选择的值将会自动保存到SharePreferences  

    addPreferencesFromResource(R.xml.checkbox);  

    mContext = this;  

    //CheckBoxPreference组件  

    CheckBoxPreference mCheckbox0 = (CheckBoxPreference) findPreference("checkbox_0");  

    mCheckbox0.setOnPreferenceClickListener(new OnPreferenceClickListener() {  

        @Override  

        public boolean onPreferenceClick(Preference preference) {  

        //这里可以监听到这个CheckBox 的点击事件  

        return true;  

        }  

    });  

    mCheckbox0.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {  

        @Override  

        public boolean onPreferenceChange(Preference arg0, Object newValue) {  

        //这里可以监听到checkBox中值是否改变了  

        //并且可以拿到新改变的值  

          Toast.makeText(mContext, "checkBox_0改变的值为" +  (Boolean)newValue, Toast.LENGTH_LONG).show();    

        return true;  

        }  

    });  

    CheckBoxPreference mCheckbox1 = (CheckBoxPreference) findPreference("checkbox_1");  

    mCheckbox1.setOnPreferenceClickListener(new OnPreferenceClickListener() {  

        @Override  

        public boolean onPreferenceClick(Preference preference) {  

        //这里可以监听到这个CheckBox 的点击事件  

        return true;  

        }  

    });  

    mCheckbox1.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {  

        @Override  

        public boolean onPreferenceChange(Preference arg0, Object newValue) {  

        //这里可以监听到checkBox中值是否改变了  

        //并且可以拿到新改变的值  

          Toast.makeText(mContext, "checkBox_1改变的值为" +  (Boolean)newValue, Toast.LENGTH_LONG).show();    

        return true;  

        }  

    });  

    }  

}  

3.EditTextPreference组件

EditTextPreference点击后会弹出一个输入框,输入的内容会以字符串的的形式储存在SharedPreferences中。

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

>  

  xmlns:

android="  

    

title="EditTextPreference">     

    

key="edit_0"  

        android:

title="输入信息_A"  

        android:

summary="请输入您的信息"  

        android:

defaultValue="请输入信息"  

        android:

dialogTitle="输入框">  

      

     

key="edit_1"  

        android:

title="输入信息_B"  

        android:

summary="请输入您的信息"  

        android:

defaultValue="请输入信息"  

        android:

dialogTitle="输入框">  

      

      

  

import android.content.Context;  

import android.os.Bundle;  

import android.preference.EditTextPreference;  

import android.preference.PreferenceActivity;  

public class EditTextActivity extends PreferenceActivity {  

    Context mContext = null;  

    @Override  

    protected void onCreate(Bundle savedInstanceState) {  

    super.onCreate(savedInstanceState);  

    // 从资源文件中添Preferences ,选择的值将会自动保存到SharePreferences  

    addPreferencesFromResource(R.xml.edittext);  

    mContext = this;  

    // EditTextPreference组件  

    EditTextPreference mEditText = (EditTextPreference) findPreference("edit_0");  

    //设置dialog按钮信息  

    mEditText.setPositiveButtonText("确定");  

    mEditText.setNegativeButtonText("取消");  

    //设置按钮图标  

    mEditText.setDialogIcon(R.drawable.jay);  

    }  

}  

4.ListPreference组件

在res/array中先写两个数组,一个用与list的显示内容,一个用户list的选中数值。

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

>  

  

  

        10 mins.  

        20 mins.  

        30 mins.  

        60 mins.  

  

  

        600000  

        1200000  

        1800000  

        3600000  

  

  

ListPreference点击后会弹出一个列表框,选中后会将选中的内容(上面数组中的值)会以字符串的的形式储存在SharedPreferences中。

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

>  

  xmlns:

android="  

  

title="ListPreference">   

        

            android:

key="list_0"  

            android:

title="登录设置A"   

            android:

dialogTitle="选择在线时间"  

            android:

entries="@array/auto_logout_time_key"  

            android:

entryValues="@array/auto_logout_time_value" >  

          

        

            android:

key="list_0"  

            android:

title="登录设置A"   

            android:

dialogTitle="选择在线时间"  

            android:

entries="@array/auto_logout_time_key"  

            android:

entryValues="@array/auto_logout_time_value" >  

          

      

  

import android.os.Bundle;  

import android.preference.PreferenceActivity;  

public class ListActivity extends PreferenceActivity {  

    @Override  

    protected void onCreate(Bundle savedInstanceState) {  

    super.onCreate(savedInstanceState);  

    // 从资源文件中添Preferences ,选择的值将会自动保存到SharePreferences  

    addPreferencesFromResource(R.xml.list);  

    }  

}  

5.RingtonePreference组件

RingtonePreference点击后会弹出一个系统铃声的列表框,选中后会将选中的内容(uri字符集)会以字符串的的形式储存在SharedPreferences中。

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

>  

  xmlns:

android="  

 

title="RingtonePreference">    

     

         android:

key="ringtone_0"    

         android:

summary="选择系统铃声A"    

         android:

title="铃声设置"    

         android:

ringtoneType="all"    

         android:

showSilent="true" >  

    

        android:

key="ringtone_!

"    

        android:

summary="选择系统铃声B"    

        android:

title="铃声设置"    

        android:

ringtoneType="all"    

        android:

showSilent="true" >  

      

 

android:

ringtoneType系统一共提供了4中响铃模式的类型分别为铃声(ringtone)通知(notification)警告(alarm)全部(all)

模拟器默认是没有铃声的,下图中的铃声我是将歌曲文件拷贝到SD卡中,设置铃声后才会出现的。

如果觉得拷贝麻烦可以使用豌豆荚或者91助手将歌曲文件放入手机SD卡中,在铃声设置那里设置一下在这里就会出现。

import android.os.Bundle;  

import android.preference.PreferenceActivity;  

public class RingtoneActivity extends PreferenceActivity {  

    @Override  

    protected void onCreate(Bundle savedInstanceState) {  

    super.onCreate(savedInstanceState);  

    // 从资源文件中添Preferences ,选择的值将会自动保存到SharePreferences  

    addPreferencesFromResource(R.xml.ringtone);  

    }  

}  

5.自定义控件

使用系统的控件在显示方面难免会有些单一,如果想做一个好看的界面就需要使用自定义Preference。

下面我简单说明一下如何编写自定义Preference。

首先在res/layout中添加preferences文件

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

>  

android="  

    android:

layout_width="fill_parent"  

    android:

layout_height="fill_parent"  

    android:

background="#00000000">  

    

        android:

gravity="center_vertical"  

        android:

background="@drawable/preference_mid_background"  

  

        android:

layout_width="fill_parent"  

        android:

layout_height="wrap_content"  

        >  

        

            android:

focusable="false"  

            android:

layout_width="wrap_content"  

            android:

layout_height="wrap_content" android:

src="@drawable/setting_about_us">  

          

        

            android:

layout_width="wrap_content"  

            android:

layout_height="wrap_content"  

            android:

layout_marginLeft="15dip"  

            android:

layout_marginTop="6dip"  

            android:

layout_marginRight="6dip"  

            android:

layout_marginBottom="6dip"  

            android:

layout_weight="1"  

            >  

            

                android:

textSize="15dip"  

                android:

textColor="#000000"  

                android:

ellipsize="marquee"  

                android:

id="@+android:

id/title"  

                android:

fadingEdge="horizontal"  

                android:

layout_width="wrap_content"  

                android:

layout_height="wrap_content"  

        

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1