2016-08-03 7 views
1

Я hava a ListView, и когда вы нажимаете на каждую строку, он начинает загрузку из службы в новом Intent.Как обновить строку ListView от службы загрузки

Как я могу обновить progressBar в строке с щелчком информации, которую я получаю от службы?

+0

вы можете отправить широковещательную рассылку со службы и получить ее в списке активности –

ответ

0

Используйте широковещательный приемник, чтобы уведомить индикатор выполнения в действии. В вашем случае трансляция при получении вы обновите индикатор выполнения и затем сообщите об этом адаптеру изменения данных.

1

В сервис отправки вещать, как показано ниже

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 г!

+0

, если вы считаете это полезным для вас, и оно разрешает то, что вы хотите, отметить это как ответ, чтобы оно могло быть полезным и для других. –

+0

Каждая строка моего списка имеет свой собственный прогрессBar, так как я могу точно обновить progressBar точной строки? – DavidOli

+0

, что вам нужно управлять при завершении службы, если есть несколько загрузок при переходе, чем пропустить индекс или идентификатор или что-то уникальное для каждой строки из службы, добавьте лишний –

0

Вы можете использовать радиовещательный приемник от службы к деятельности или fragment.you должны регистрироваться и незарегистрированной трансляцию на onResume() и onPause() и создали экземпляр вещания в деятельности и sendBroadcast через сервис вы можете обратиться на следующий пример: http://www.truiton.com/2014/09/android-service-broadcastreceiver-example/