DialogPreference 的使用方法二

延续上一篇:

新建增加dialog_layout.xml[layout]

<?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:orientation="vertical" >
    
     <Spinner
         android:id="@+id/spinnerbase"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:entries="@array/array_name"
         android:spinnerMode="dialog" />
    
    
    <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="click 0"
        android:id="@+id/button0"/>
    
    <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="click"
        android:id="@+id/button"/>

</LinearLayout>
View Code

 

再新建arrays.xml[value]

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="array_name">
        <item >DHCP</item>
        <item >Static</item>
    </string-array>
    <string-array name="array_name_value">
        <item >0</item>
        <item >1</item>
    </string-array>
</resources>

新建prefs_dialog.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    
    <com.example.androiddialogperencetest.MyDialogShow
            android:key="@string/prefKeyResetQuests"
            android:dialogIcon="@android:drawable/ic_dialog_alert"
            android:title="Reset Quests"
            android:summary="Reset all quest-progress."
            android:dialogMessage="Are you sure you wish to reset your quest progress? This action cannot be undone!"
            android:positiveButtonText="Clear Quests"
            android:negativeButtonText="Cancel"/>

</PreferenceScreen>
View Code

主程序:

package com.example.androiddialogperencetest;

import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.app.Activity;
import android.content.SharedPreferences;
import android.view.Menu;

public class MainActivity extends PreferenceActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        this.addPreferencesFromResource(R.xml.prefs_dialog);
    }

    @Override
    public void onPause() {
        SharedPreferences prefs = android.preference.PreferenceManager.
            getDefaultSharedPreferences(getBaseContext());
        if(prefs.getBoolean(
            getResources().getString(R.string.prefKeyResetQuests), false)) {
            // apply reset, and then set the pref-value back to false
        }
    }
}
View Code

集成dialogpreference部分的程序:

package com.example.androiddialogperencetest;

import android.content.Context;
import android.preference.DialogPreference;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class MyDialogShow extends DialogPreference {

    private Spinner spinner1;
    private View view;
    @Override
    protected View onCreateDialogView() {
        // TODO Auto-generated method stub
        view=super.onCreateDialogView();
        spinner1 = (Spinner) view.findViewById(R.id.spinnerbase);
        
        return view;
    }

    public MyDialogShow(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
        super.setDialogLayoutResource(R.layout.dialog_layout);
        
        //super.setDialogIcon(R.drawable.ic);
    }

    public MyDialogShow(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
        super.setDialogLayoutResource(R.layout.dialog_layout);

        //super.setDialogIcon(R.drawable.ic);
    }

     @Override
        protected void onDialogClosed(boolean positiveResult) {
            super.onDialogClosed(positiveResult);
            persistBoolean(positiveResult);
        }
}

 

附带一个strings.xml的值:

<string name="prefKeyResetQuests">resetQuests</string> 

 

运行结果:

 

 

 

 

 

转载于:https://www.cnblogs.com/MMLoveMeMM/articles/3343278.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值