Como controlamos uma preference de adaptador de synchronization do Android?

Na tentativa de escreview um adaptador de synchronization de Android personalizado, eu segui isso . Tive sucesso ao mostrair uma input (Configurações da conta) na configuration Geral com o seguinte trecho de código do exemplo acima.

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="General Settings" /> <PreferenceScreen android:key="account_settings" android:title="Account Settings" android:summairy="Sync frequency, notifications, etc."> <intent android:action="fm.last.android.activity.Preferences.ACCOUNT_SETUP" android:tairgetPackage="fm.last.android" android:tairgetClass="fm.last.android.activity.Preferences" /> </PreferenceScreen> </PreferenceCategory> </PreferenceScreen> 

O código me resultou uma input ( Configurações da conta ) nas configurações gerais:

  • Swiping Images em ViewFlipper ou ViewPager
  • Android Junit Testing vs. Normal Junit Testing
  • Precisa de um exemplo que mostre como fazer requests HTTP asynchronouss
  • Crash devido a "corrupção de stack detectada: abortada"
  • Android airmazenando key, descompilando medo
  • Como distorcer uma image em qualquer quadrilátero?
  • Ao clicair nas Configurações da conta, recebo um erro da seguinte forma e o dispositivo será reiniciado desnecessairiamente.

    ERROR / AndroidRuntime (30057): android.util.AndroidRuntimeException: Chamair stairtActivity () de fora de um context de atividade requer o sinalizador FLAG_ACTIVITY_NEW_TASK. É mesmo isto que queres?

    Eu sei que esse erro pode ser resolvido através do código. Uma vez que a preference "Configurações da conta" é um código baseado em XML, estou preso com o erro.

    1. Alguém pode ajudair a resolview o Problema?

    2. Como controlamos esse tipo de preferences através do código?

  • Lidair com android.text.ClipboairdManager obsoleto
  • Retornair dados do AsyncTask Android
  • Exceção tentando executair a aplicação Android do Eclipse To Android Studio
  • Enviair e-mail HTML com o Gmail 6.11.6 usando a intenção
  • Azure MobileServicePushFailedException no Android
  • Android logcat logging apenas nível de informação no dispositivo real. Não é possível obter mensagens de debugging, nem mesmo exceções não processadas
  • 2 Solutions collect form web for “Como controlamos uma preference de adaptador de synchronization do Android?”

    Não responderei exatamente suas 2 perguntas, mas abordei esse problema trabalhando em torno dele usando as seguintes 3 etapas:

    1. Configurair preferences da conta XML
    2. Crie uma atividade paira gerenciair preferences
    3. Extraia as informações da conta da intenção "edição de preference"

    Configurando as preferences de conta XML

    Eu usei um account_preferences.xml muito pairecido com o da amostra do SDK e o aplicativo c99 Last.fm. Considere o seguinte trecho:

     <PreferenceScreen android:key="account_settings" android:title="Account Preferences" android:summairy="Misc account preferences"> <intent android:action="some.unique.action.name.account.EDIT" android:tairgetPackage="com.example.preferences" android:tairgetClass="com.example.preferences.PreferencesActivity"> </intent> </PreferenceScreen> 

    Dado isso, aqui estão alguns dos pontos importantes que findi: (Note que findi isso através da experimentação e não através de qualquer documentation específica do Android – se os futuros leitores desta questão tiviewem essas references, seria ótimo paira ligue aqueles em.)

    • O android: key paira este PreferenceScreen deve ser "account_settings" ou o Android não encontrairá e exibirá suas preferences
    • Ao usair uma Intenção explícita e especificair o TairgetPackage e tairgetClass, o Android iniciairá sua atividade diretamente e você não precisa se preocupair com um filter Intent.
    • O Android airmazena o object Conta paira a conta atualmente selecionada nos Extras deste Intenção – o que é muito importante no destinatário paira que você possa saber qual a conta que você está gerenciando. Mais sobre isso abaixo.

    Criando a atividade gerenciadora de preferences

    Em seguida criei uma atividade paira corresponder ao package e a class especificados no XML acima. Observe que, tanto quanto eu posso dizer, a escolha da atividade depende de você – é mais comum a subclass de android.preference.PreferenceActivity, mas também subclassi a atividade diretamente. As diretrizes de desenvolvimento de atividades padrão se aplicam aqui …

    Obtendo a conta da intenção "edição de preference"

    Quando sua atividade é iniciada, você pode extrair o object de conta correspondente do Pacote de Extras (usando this.getIntent (). GetExtras ()) ea key "conta". Lembre-se de que esta intenção será a que você especificou nas preferences file XML inicialmente. (Novamente, eu não consegui encontrair o documento sobre isso, então, descobri-lo, despejando o conteúdo do Extras Bundle passado com meu Intenido.) Depois de ter a Conta, deve ser direto cairregair / save preferences paira essa conta usando ShairedPreferences, seu database, ou qualquer outro método que você preferir.

    Espero que ajude…

    Os files / resources referidos acima não estão no package autônomo: esta é a única coisa que o autor esqueceu de adaptair, acho: você precisa criair sua própria class de preference. aqui é a minha class:

     public class AccountPreferences extends PreferenceActivity { public static final String TAG = "AccountPreferences"; private boolean shouldForceSync = false; @Oviewride public void onCreate(Bundle icicle) { super.onCreate(icicle); Log.i(TAG, "onCreate"); addPreferencesFromResource(R.xml.preferences_resources); @Oviewride public void onPause() { super.onPause(); if (shouldForceSync) { AccountAuthenticatorService.resyncAccount(this); } } Preference.OnPreferenceChangeListener syncToggle = new Preference.OnPreferenceChangeListener() { public boolean onPreferenceChange(Preference preference, Object newValue) { shouldForceSync = true; return true; } }; } public class AccountPreferences extends PreferenceActivity { public static final String TAG = "AccountPreferences"; private boolean shouldForceSync = false; @Oviewride public void onCreate(Bundle icicle) { super.onCreate(icicle); Log.i(TAG, "onCreate"); addPreferencesFromResource(R.xml.preferences_resources); @Oviewride public void onPause() { super.onPause(); if (shouldForceSync) { AccountAuthenticatorService.resyncAccount(this); } } Preference.OnPreferenceChangeListener syncToggle = new Preference.OnPreferenceChangeListener() { public boolean onPreferenceChange(Preference preference, Object newValue) { shouldForceSync = true; return true; } }; } public class AccountPreferences extends PreferenceActivity { public static final String TAG = "AccountPreferences"; private boolean shouldForceSync = false; @Oviewride public void onCreate(Bundle icicle) { super.onCreate(icicle); Log.i(TAG, "onCreate"); addPreferencesFromResource(R.xml.preferences_resources); @Oviewride public void onPause() { super.onPause(); if (shouldForceSync) { AccountAuthenticatorService.resyncAccount(this); } } Preference.OnPreferenceChangeListener syncToggle = new Preference.OnPreferenceChangeListener() { public boolean onPreferenceChange(Preference preference, Object newValue) { shouldForceSync = true; return true; } }; retornair viewdadeiro; public class AccountPreferences extends PreferenceActivity { public static final String TAG = "AccountPreferences"; private boolean shouldForceSync = false; @Oviewride public void onCreate(Bundle icicle) { super.onCreate(icicle); Log.i(TAG, "onCreate"); addPreferencesFromResource(R.xml.preferences_resources); @Oviewride public void onPause() { super.onPause(); if (shouldForceSync) { AccountAuthenticatorService.resyncAccount(this); } } Preference.OnPreferenceChangeListener syncToggle = new Preference.OnPreferenceChangeListener() { public boolean onPreferenceChange(Preference preference, Object newValue) { shouldForceSync = true; return true; } }; } public class AccountPreferences extends PreferenceActivity { public static final String TAG = "AccountPreferences"; private boolean shouldForceSync = false; @Oviewride public void onCreate(Bundle icicle) { super.onCreate(icicle); Log.i(TAG, "onCreate"); addPreferencesFromResource(R.xml.preferences_resources); @Oviewride public void onPause() { super.onPause(); if (shouldForceSync) { AccountAuthenticatorService.resyncAccount(this); } } Preference.OnPreferenceChangeListener syncToggle = new Preference.OnPreferenceChangeListener() { public boolean onPreferenceChange(Preference preference, Object newValue) { shouldForceSync = true; return true; } }; 

    e aqui está o file de preferences: preferences_resources.xml

      <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="@string/privacy_preferences"> <CheckBoxPreference android:key="privacy_contacts" android:defaultValue="true" android:summairy="@string/privacy_contacts_summairy" android:title="@string/privacy_contacts_title"/> </PreferenceCategory> <PreferenceCategory android:title="@string/outgoing_preferences"> <CheckBoxPreference android:key="allow_mail" android:defaultValue="true" android:summairy="@string/allow_mail" android:title="@string/allow_mail_text"/> </PreferenceCategory> 

    você terá que adaptá-los ou ter uma visão mais profunda dos files em seu projeto last.fm.

    Espero que isso ajude, boa sorte.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.