Я сделал живые обои, которые имеют множество сложных настроек. Глядя на различных примерах в Интернете кажется, что стандартный способ установить предпочтение в качестве обоев, чтобы иметь некоторые XML, как это:android: settingsActivity - как получить нестандартное поведение
<wallpaper xmlns:android="http://schemas.android.com/apk/res/android"
android:thumbnail="@drawable/my_icon"
android:description="@string/wallpaper_description"
android:settingsActivity="com.mycompany.mywallpaper.MyWallpaperSettings"
/>
Где MyWallpaperSettings
класс определяется следующим образом:
public class MyWallpaperSettings extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener
с ...
@Override
protected void onCreate(Bundle blah)
{
super.onCreate(blah);
getPreferenceManager().setSharedPreferencesName(MyWallPaper.SHARED_PREFS_NAME);
addPreferencesFromResource(R.xml.my_settings);
getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}
Это все работает как рекламируемое, но оно выглядит довольно грубым. Я заметил, что внешний вид некоторых настроек обоев намного сложнее или вообще не похож на экраны стандартных настроек, некоторые из них имеют диалоговое окно, в котором появляются кнопки, на которых есть ссылки на веб-сайты. Мне интересно, как я могу это достичь. Все дело в том, что fancier xml в my_settings.xml или, возможно, в android: settingsActivity = .. указывает на то, что не является функцией предпочтения, а скорее обычной деятельностью? Или, может быть, код внутри oncreate должен выглядеть по-другому - я просто не уверен, где именно я должен отклоняться от примеров.
Глядя на developer.android.com, он говорит: «Это базовый класс для активности, показывающий иерархию предпочтений для пользователя». - это звучит так, будто я ограничен узким диапазоном вещей, которые я могу сделать ... вот почему я разрывается между попытками выдвинуть границы того, что можно сделать внутри PreferenceActivity и сделать android:settingsActivity=
, что-то, что просто isn ' t a PreferenceActivity вообще (если это разрешено).
действительно сложно сказать, что было задано здесь: тема http://stackoverflow.com/questions/11751498/how-to-change-preferenceactivity-theme? пользовательский макет http://stackoverflow.com/questions/2697233/how-to-add-a-button-to-preferencescreen? – Selvin
Ссылки, которые вы добавили в свой комментарий, уже полезны - так что это не может быть так сложно. Но я сделаю некоторые изменения на свой пост. – Mick