PreferenceActivity 作为主要 Activity

发布于 2024-10-09 21:03:09 字数 1690 浏览 8 评论 0原文

我是一个菜鸟,正在开发我的第一个应用程序,该应用程序包含以下内容:

  1. 主要活动,它只有一个复选框,在 onClick 时启动/停止我的服务。
  2. 每 60 秒运行一次方法(快速数据库查询)的服务。

一切正常后,我意识到我的复选框没有保存其状态。经过更多搜索后,我认为我应该使用 CheckBoxPreference 而不是 CheckBox。

在开始研究如何执行此操作之前,我的问题:是否可以将首选项屏幕设置作为主要活动?如果是这样,有人知道这方面的任何例子吗?或者有人可以提供我需要研究使用的内容的概要吗?

我只是在继续研究时寻求一些指导。我正在努力学习,所以我喜欢理解为什么。

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

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);
            }
        });
    }
}

I'm a noob working on my first app that consists of the following:

  1. Main Activity which simply has one CheckBox which upon an onClick starts/stops my service.
  2. Service which runs a method (quick database query) every 60 seconds.

After getting everything working, I realized that my CheckBox was not saving its state. After a bit more searching I figured I should be using CheckBoxPreference rather than CheckBox.

My question(s) before I start researching HOW to do this: Is it possible to have a preference screen setup as the main activity? If so, does anyone know of any examples of this or can anyone provide an outline of what I'll need to look into using?

I'm just looking for some guidance as I continue to research. I'm trying to learn so I like to understand WHY.

I created my MyPreferenceActivity.class and it looks like my preferences are saved and returned correctly. Now, I'm having an issue with this error "This method must return a result of type boolean." This occurs on this line of my code:

public boolean onPreferenceClick(Preference preference)

Sorry I'm not getting the toolbar for formatting.

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);
            }
        });
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风透绣罗衣 2024-10-16 21:03:09

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

但是

  1. 我最近见过这样的构造(也许是因为这是一种奇怪的方法)
  2. PreferenceActivity 所做的唯一一件事就是管理一个保存在应用程序私有区域中的 xml 文件,只有一个复选框,它是一个为自己快速做事!

我期待着你的安萨兹!

What you are saying is that you want to use a PreferenceActivity as the main Activity, I think that's possible because it inherits from the Activity class.

But

  1. I have newer seen such a construction (maybe because it's a strange approach)
  2. The only thing a PreferenceActivity does is to managa an xml file which is saved in the apps private area, with only one checkbox it's a fast thing to do for your self!

I'm looking forward to your ansatz!

£烟消云散 2024-10-16 21:03:09

经过一番挖掘,我再次找到了答案。 Basic Java 101 here..我必须补充一点:

return true;

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

Again, I found my answer after digging around. Basic Java 101 here.. I had to add:

return true;

At least now I understand the concept.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文