PreferenceActivity为主要活动

时间:2011-01-03 22:27:15

标签: android preference preferenceactivity checkboxpreference

我是第一个使用以下内容的应用程序的菜鸟:

  1. 主要活动,只有一个CheckBox,在onClick启动/停止我的服务。
  2. 每60秒运行一次方法(快速数据库查询)的服务。
  3. 让一切正常后,我意识到我的CheckBox没有保存它的状态。经过一番搜索后,我发现我应该使用CheckBoxPreference而不是CheckBox。

    我的问题,然后我开始研究如何做到这一点:是否可以将首选项屏幕设置为主要活动?如果是这样,有没有人知道这方面的任何例子,或者任何人都可以概述我需要使用的内容吗?

    我正在寻找一些指导,因为我继续研究。我正在努力学习,所以我想了解为什么。

    我创建了MyPreferenceActivity.class,看起来我的首选项已保存并正确返回。现在,我遇到了这个错误的问题“这个方法必须返回boolean类型的结果。”这发生在我的代码的这一行:

    public boolean onPreferenceClick(Preference preference)
    

    抱歉,我没有收到格式化工具栏。

    MyPreferenceActivity.class

    package com.example.android.myprogram;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.preference.Preference;
    import android.preference.PreferenceActivity;
    import android.preference.PreferenceManager;
    import android.preference.Preference.OnPreferenceClickListener;
    
    
    public class MyPreferenceActivity extends PreferenceActivity {
        private static final String TAG = "MyPreferenceActivity";
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.preferences);
            PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
            getPreferenceManager().findPreference("checkbox").setOnPreferenceClickListener(new OnPreferenceClickListener()
            {
                Intent myIntent = new Intent(getApplicationContext(), MyService.class);
                @Override
                public boolean onPreferenceClick(Preference preference)
                {
                    startService(myIntent);
                }
            });
        }
    }
    

2 个答案:

答案 0 :(得分:0)

你所说的是你想使用PreferenceActivity作为主Activity,我认为这是可能的,因为它继承自Activity类。

但是

  1. 我有新见过这样的结构(也许是因为这是一种奇怪的方法)
  2. PreferenceActivity唯一能做的就是managa一个保存在应用私密区域的xml文件,只有一个复选框,这对你自己来说是一件快事!
  3. 我期待你的ansatz!

答案 1 :(得分:0)

再次,我在挖掘后找到了答案。这里是基本的Java 101 ..我不得不补充:

return true;

至少现在我理解这个概念。