2013-08-28 3 views
0

Я хочу изменить визуализацию активности предпочтений до того, как метод завершит показ сообщения или панели прогресса.Изменение активности Android Preferences до конца функции

buttonSave.setOnPreferenceClickListener(new OnPreferenceClickListener() { 
      public boolean onPreferenceClick(Preference preference) { 
       buttonSave.setTitle(getString(R.string.loadingWait));//visualization to change before the next function ends 
       back();//this function takes a long time  
      // buttonSave.setTitle(getString(R.string.bSave)); 
       return true; 
      } 
    }); 

Как это сделать? Другая возможность - это индикатор прогресса, но я могу показать его до завершения функции back().

Большое спасибо заранее

ответ

0

Вы должны смотреть на AsyncTask (http://developer.android.com/reference/android/os/AsyncTask.html)

Все в doInBackground будет выполняться в отдельном потоке, в то время как все другие методы (например, onProgressUpdate может манипулировать UI, потому что . в потоке пользовательского интерфейса снова

Так что вы могли бы сделать что-то вроде этого:

new AsyncTask<Void, Void, Boolean>() { 

    @Override 
    protected void onPreExecute() { 
     buttonSave.setTitle(getString(R.string.loadingWait)); 
    } 

    @Override 
    protected Boolean doInBackground(Void... params) { 
     back(); 
    } 

    @Override 
    protected void onProgressUpdate(Void... values) { 
     //Show any progress 
    } 

    @Override 
    protected void onPostExecute(Boolean success) { 
     //Anything necessary when the background task is done 
    }; 
}.execute(); 
+0

Просто идеально. Большое спасибо! –

+0

Добро пожаловать! Не могли бы вы отметить это как принятый ответ ...? – Glenn85