PreferenceActivity как основная деятельность - PullRequest
3 голосов
/ 04 января 2011

Я - нуб, работающий над моим первым приложением, которое состоит из следующего:

  1. Основное действие, в котором просто есть один CheckBox, который при onClick запускает / останавливает мой сервис.
  2. Сервис, который запускает метод (быстрый запрос к базе данных) каждые 60 секунд.

После того, как все заработало, я понял, что мой 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 голосов
/ 04 января 2011

Опять же, я нашел свой ответ после рытья вокруг.Базовая Java 101 здесь .. Мне пришлось добавить:

return true;

По крайней мере, теперь я понимаю концепцию.

0 голосов
/ 04 января 2011

То, что вы говорите, это то, что вы хотите использовать PreferenceActivity в качестве основного Activity, я думаю, что это возможно, потому что он наследуется от класса Activity.

Но

  1. Я недавно видел такую ​​конструкцию (возможно, потому что это странный подход)
  2. Единственное, что делает PreferenceActivity, этоуправлять XML-файлом, который сохраняется в приватной области приложений, с одним лишь флажком, это быстрое занятие для себя!

Я с нетерпением жду вашего ответа!

...