• 安卓学习-activity-PreferenceActivity


    其他都比较简单,亮度用了一个自定义的PreferenceActivity

    配置

    xml/setting.xml

    <?xml version="1.0" encoding="utf-8"?>
    <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    开发论坛
    
        <PreferenceCategory android:title="文本框" >
            <EditTextPreference
                android:key="name"
                android:negativeButtonText="取消"
                android:positiveButtonText="确定"
                android:summary="dd"
                android:title="名字" />
        </PreferenceCategory>
        <PreferenceCategory android:title="选择" >
            <CheckBoxPreference
                android:key="sount1"
                android:summaryOff="关"
                android:summaryOn="开"
                android:title="提示音" />
            <CheckBoxPreference
                android:key="zd"
                android:summaryOff="关"
                android:summaryOn="开"
                android:title="震动" />
        </PreferenceCategory>
        <PreferenceCategory android:title="列表" >
            <ListPreference
                android:dialogTitle="性别"
                android:entries="@array/value1"
                android:entryValues="@array/value1"
                android:key="xb"
                android:title="性别" />
    
            <MultiSelectListPreference
                android:entries="@array/xq"
                android:entryValues="@array/xq"
                android:key="xq"
                android:summary="请选择"
                android:title="兴趣" />
        </PreferenceCategory>
        <PreferenceCategory android:title="其他" >
            <com.example.fffff.SeekPreference
                android:key="tjld"
                android:summary="版本号0.0.1"
                android:title="调节亮度" />
            <Preference
                android:key="xtsj"
                android:summary="版本号0.0.1"
                android:title="系统升级" />
            <Preference
                android:key="gy"
                android:title="关于" />
        </PreferenceCategory>
    
    </PreferenceScreen>
    View Code

    values/strings.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="app_name">fffff</string>
        <string name="hello_world">Hello world!</string>
        <string-array name="value1">
            <item ></item>
            <item ></item>
        </string-array>
        
        <string-array name="xq">
            <item >游泳</item>
            <item >跑步</item>
            <item >吃饭</item>
            <item >喝酒</item>
            <item >逛街</item>
            <item >电脑</item>
            <item >女人</item>
        </string-array>
    
    </resources>
    View Code

    自定义layout  activity_tjld.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" android:padding="15dp">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
    
            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="亮度"
                android:textAppearance="?android:attr/textAppearanceMedium" />
    
            <SeekBar
                android:id="@+id/seekBar1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1" />
    
        </LinearLayout>
    
        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Small Text"
            android:textAppearance="?android:attr/textAppearanceSmall" />
    
    </LinearLayout>
    View Code

    MainActivity.java

    public class MainActivity extends PreferenceActivity implements OnPreferenceChangeListener{
    
    
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //加载设置文件
            addPreferencesFromResource(R.xml.setting); 
            SharedPreferences sp = getPreferenceScreen().getSharedPreferences(); 
            //获取值
            Preference pref1 =findPreference("name");
            pref1.setSummary(sp.getString("name", "请输入")); 
            Preference pref2 =findPreference("xb");
            pref2.setSummary(sp.getString("xb", "请输入")); 
            Preference pref3 =findPreference("xq");
            if(sp.getStringSet("xq",null)!=null){
                pref3.setSummary(sp.getStringSet("xq",null).toString()); 
            }
            
            Preference pref6 =findPreference("tjld");
            //最终会调用onPreferenceChange
            pref6.setSummary(sp.getInt("tjld", 0)+""); 
               
    
            //设置改变事件
            pref1.setOnPreferenceChangeListener(this);
            pref2.setOnPreferenceChangeListener(this);
            pref3.setOnPreferenceChangeListener(this);
            pref6.setOnPreferenceChangeListener(this);
            
            
            Preference pref4 =findPreference("xtsj");
            pref4.setOnPreferenceClickListener(new OnPreferenceClickListener() {
                public boolean onPreferenceClick(Preference preference) {
                    Toast.makeText(MainActivity.this, "升级提示", Toast.LENGTH_SHORT).show();
                    return true;
                }
            });
            
            Preference pref5 =findPreference("gy");
            pref5.setOnPreferenceClickListener(new OnPreferenceClickListener() {
                public boolean onPreferenceClick(Preference preference) {
                    Toast.makeText(MainActivity.this, "关于", Toast.LENGTH_SHORT).show();
                    return true;
                }
            });
        }
    
        @Override
        public boolean onPreferenceChange(Preference preference, Object newValue) {
            preference.setSummary(newValue.toString());                
            return true;
        }
    
    }
    View Code

    SeekPreference.java

    public class SeekPreference extends Preference{
    
        Context context;
        TextView summaryText;
        int index=0;
        
        public SeekPreference(Context context, AttributeSet attrs, int defStyleAttr) {
            
            super(context, attrs, defStyleAttr);
            this.context=context;
        }
        
        public SeekPreference(Context context, AttributeSet attrs) {
            super(context, attrs);
            this.context=context;
        }
    
        public SeekPreference(Context context) {
            super(context);
            this.context=context;
        }
        
        protected void onBindView(View view) {
            summaryText=(TextView)view.findViewById(R.id.textView2);
            summaryText.setText(getSummary());
            SeekBar seekBar=(SeekBar)view.findViewById(R.id.seekBar1);
            seekBar.setProgress(getPersistedInt(0));
            seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
                
                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {
                    // TODO 自动生成的方法存根
                }
                
                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {
                    // TODO 自动生成的方法存根
                }
                
                @Override
                public void onProgressChanged(SeekBar seekBar, int progress,
                        boolean fromUser) {
                    persistInt(progress);
                    //回调change事件
                    callChangeListener(progress);
                    Toast.makeText(context, progress+"", Toast.LENGTH_SHORT).show();
                }
            });
        }
        
       
        @Override
        protected View onCreateView(ViewGroup parent) {
            return LayoutInflater.from(getContext()).inflate(R.layout.activity_tjld, parent, false);
        }
        
        
    }
    View Code
  • 相关阅读:
    Mongodb启动命令mongod参数说明
    10款免费且开源的项目管理工具
    如何让ConfigurationManager打开任意的配置文件
    Sql Server FOR XML PATH
    常用项目管理工具
    ThinkPHP最新版本SQL注入漏洞
    支付宝内部人士是这样设密码的!太牛逼了!
    犯罪分子如何用身份证套你的钱
    解析漏洞总结
    Sqlserver2008+搜索型注入技术
  • 原文地址:https://www.cnblogs.com/weijj/p/4140155.html
Copyright © 2020-2023  润新知