android xml dialog的使用

1.创建xml文件panic_button_settings

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
    android:title="@string/panic_button_settings">
    
    <!-- status -->
    <ListPreference
        android:key="panic_button_status"
        android:title="@string/panic_button_status"
        android:summary="@string/panic_button_disable_summary"
        android:entries="@array/panic_button_status_choices"
        android:entryValues="@array/panic_button_status_values"   
        android:dialogTitle="@string/panic_button_status"  />


<!-- emergency number-->
<PreferenceScreen
        android:key="panic_button_emergency_number"
        android:title="@string/panic_button_emergency_number"
        android:fragment="com.android.settings.PanicButtonEmergencyNumberSettings"/>


    <!-- Help -->
    <PreferenceScreen
        android:key="panic_button_help"
        android:title="@string/panic_button_help" />


</PreferenceScreen>


2.新建panic_button_status_choices和panic_button_status_values用于选择对应的条目和值

<string name="panic_button_disable">Disable</string>
<string name="panic_button_enable">Enable</string>

<string-array name="panic_button_status_choices">
<item>@string/panic_button_enable</item>
<item>@string/panic_button_disable</item>
</string-array>
<string-array name="panic_button_status_values">
<item>"1"</item>
<item>"0"</item>
</string-array>


3.创建使用dialog的类

package com.android.settings;
import android.provider.Settings;
import android.util.Log;
import com.android.internal.logging.MetricsLogger;
import com.android.settings.R;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Process;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceScreen;


/**
 * Panic button settings.
 */
public class PanicButtonSettings extends SettingsPreferenceFragment implements OnPreferenceClickListener,OnPreferenceChangeListener{


    private static final String PANIC_BUTTON_STATUS = "panic_button_status";
    private static final String PANIC_BUTTON_EMERGENCY_NUMBER = "panic_button_emergency_number";
    private static final String PANIC_BUTTON_HELP = "panic_button_help";
    private static final String PANIC_BUTTON_STATUS_KEY = "panic_button_status_key";
    private static final int DEFAULT_ENADLE = 0;
    private ListPreference mPanicButtonStatus;
    private PreferenceScreen mPanicButtonEmergencyMumber;
    private PreferenceScreen mPanicButtonHelp;


    @Override
    protected int getMetricsCategory() {
        return MetricsLogger.PRIVACY;
    }

   @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.panic_button_settings);
        final PreferenceScreen screen = getPreferenceScreen();

//获取dialog ListPreference
        mPanicButtonStatus = (ListPreference) screen.findPreference(PANIC_BUTTON_STATUS);
        mPanicButtonEmergencyMumber = (PreferenceScreen) screen.findPreference(PANIC_BUTTON_EMERGENCY_NUMBER);
        mPanicButtonHelp = (PreferenceScreen) screen.findPreference(PANIC_BUTTON_HELP);
        mPanicButtonStatus.setOnPreferenceChangeListener(this);
        mPanicButtonEmergencyMumber.setOnPreferenceClickListener(this);
        mPanicButtonHelp.setOnPreferenceClickListener(this);

//获取dialog ListPreference值并初始化

        int panicButtonStatus = android.provider.Settings.Global.getInt(
        getActivity().getContentResolver(),
        PANIC_BUTTON_STATUS_KEY,DEFAULT_ENADLE);
        mPanicButtonStatus.setValue(Integer.toString(panicButtonStatus));
        if(panicButtonStatus==DEFAULT_ENADLE){
        mPanicButtonStatus.setSummary(R.string.panic_button_disable_summary);
        } else{
        mPanicButtonStatus.setSummary(R.string.panic_button_enable_summary);
        }
    }

@Override
public boolean onPreferenceClick(Preference preference) {
if(preference.getKey().equals(PANIC_BUTTON_HELP)){
Intent intent=new Intent(getActivity(),PanicButtonHelpActivity.class);
startActivity(intent);
}
return false;
}

//当选择的时候设置ListPreference值并设定summary

@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if(preference.getKey().equals(PANIC_BUTTON_STATUS)){
int panicButtonStatusValue = Integer.valueOf((String) newValue).intValue();
mPanicButtonStatus.setValue(Integer.toString(panicButtonStatusValue));
if(panicButtonStatusValue==DEFAULT_ENADLE){
        mPanicButtonStatus.setSummary(R.string.panic_button_disable_summary);
       } else{
        mPanicButtonStatus.setSummary(R.string.panic_button_enable_summary);
       }
android.provider.Settings.Global.putInt(
        getActivity().getContentResolver(),
        PANIC_BUTTON_STATUS_KEY,panicButtonStatusValue);
}
return true;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值