Я hava a ListView
, и когда вы нажимаете на каждую строку, он начинает загрузку из службы в новом Intent
.Как обновить строку ListView от службы загрузки
Как я могу обновить progressBar
в строке с щелчком информации, которую я получаю от службы?
Я hava a ListView
, и когда вы нажимаете на каждую строку, он начинает загрузку из службы в новом Intent
.Как обновить строку ListView от службы загрузки
Как я могу обновить progressBar
в строке с щелчком информации, которую я получаю от службы?
Используйте широковещательный приемник, чтобы уведомить индикатор выполнения в действии. В вашем случае трансляция при получении вы обновите индикатор выполнения и затем сообщите об этом адаптеру изменения данных.
В сервис отправки вещать, как показано ниже
Intent i = new Intent("Updated_Count");
i.putExtra("progress", <progress count>);
i.putExtra("row_index", <row_index>);
sendBroadcast(i);
С другой стороны в деятельности получить его
public class newMessage extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if(action.equalsIgnoreCase("Updated_Count")){
Bundle extra = intent.getExtras();
String progress= extra.getString("progress");
String index = extra.getString("row_index");
// now you can play with progress for any particular list row
}
}
Вы можете разместить выше класса, как к югу от класса, чтобы список вашей деятельности
Дон» t забыть зарегистрировать/отменить регистрацию вещательного приемника
Happy Codin г!
, если вы считаете это полезным для вас, и оно разрешает то, что вы хотите, отметить это как ответ, чтобы оно могло быть полезным и для других. –
Каждая строка моего списка имеет свой собственный прогрессBar, так как я могу точно обновить progressBar точной строки? – DavidOli
, что вам нужно управлять при завершении службы, если есть несколько загрузок при переходе, чем пропустить индекс или идентификатор или что-то уникальное для каждой строки из службы, добавьте лишний –
Вы можете использовать радиовещательный приемник от службы к деятельности или fragment.you должны регистрироваться и незарегистрированной трансляцию на onResume()
и onPause()
и создали экземпляр вещания в деятельности и sendBroadcast через сервис вы можете обратиться на следующий пример: http://www.truiton.com/2014/09/android-service-broadcastreceiver-example/
вы можете отправить широковещательную рассылку со службы и получить ее в списке активности –