Cómo tocar EditTextPrefences de otra actividad u otro hilo

Tengo una actividad de configuración que el nombre de la tienda, al cambiar el nombre que debe enviar primero a mi servidor y si su tienda en el servidor con éxito, entonces debería establecer en el resumen de mi EditTextPreference .

Todo funciona bien, pero al final no puedo tocar el EditTextPreference para establecer el nombre en él.

Este método está en el establecimiento de la actividad, pero se llama desde onPostExecute de la AsyncTask

  public void setNewSetting(Activity activity) { EditTextPreference editTextPreference = (EditTextPreference) UserSettingActivity.this.findPreference(activity.getString(R.string.pref_name_key)); name = sharedPreferences.getString(activity.getString(R.string.pref_name_key), ""); editTextPreference.setSummary(name); } 

La actividad es la actividad de configuración que pasé a AsyncTask y luego pasó al método.

Mi problema está aquí y me dan un nullPoiterException para EditTextPreferences

Perdón por mi mal ingles. Y gracias de antemano.

Método 1:

Si la actividad sigue en segundo plano, pase su context a AsyncTask y cree una instancia de su Actividad de configuración.

 SettingsActivity settingsActivity = (SettingsActivity) context; 

Entonces, llame al método en onPostExecute()

 settingsActivity.setNewSetting(); 

Y, tenga su método setNewSetting() en su SettingsActivity. Debe ser público y poner algunas comprobaciones para los valores nulos.

Método 2:

Utilice un delegado de interfaz. Crear una interfaz:

  public interface TaskListener { void onComplete(); } 

Pase a AsyncTask cuando lo ejecute, algo así como:

 new MyAsyncTask(params, params, new TaskListener() { @Override public void onComplete () { // call setNewSetting from within SettingsActivity } }).execute(); 

Lo obtiene en su constructor AsyncTask:

 public MyAsyncTask (String params, String param2, TaskListener taskListenerDelegate) { this.taskListenerDelegate = taskListenerDelegate; } 

Llame a su onComplete() en onPostExecute() :

 taskListenerDelegate.onComplete(); 

Método 3

No se recomienda, pero puede intentar con startActivityForResult() también. Y, escuche en onActivityResult() para aplicar los cambios.

  • Cómo utilizar addPreferencesFromResource para android 2.X?
  • Android: PreferenceFragment sólo muestra primera preferencia
  • ¿Cómo puedo mostrar un Diálogo de un PreferenceFragment?
  • Cómo utilizar PreferenceFragment?
  • ¿Dónde debe llamar a PreferenceManager.setDefaultValues?
  • ¿Por qué Custom DialogPreference no se activa en onSharedPreferenceChanged?
  • ¿Cómo detectar si se hicieron cambios en las preferencias?
  • Obtener preferencias en AppWidget Provider
  • Cómo establecer el resumen de preferencias edittext y hacer que se pegue
  • Escribir a las preferencias compartidas es demasiado lento?
  • Android: Cómo almacenar una matriz de cadenas en SharedPreferences para android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.