如何从下载服务更新ListView的行

时间:2016-08-03 09:30:16

标签: android listview android-service adapter

我有一个ListView,当您点击每一行时,它会从新Intent中的服务开始下载。

如何根据我从服务获得的信息更新所点击行中的progressBar

3 个答案:

答案 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         
     }
}

您可以将上面的类作为子类放入列表活动

不要忘记注册/取消注册广播接收器

快乐的编码!

答案 1 :(得分:0)

使用广播接收器通知活动中的进度条。在您收到广播时,您将更新进度条,然后通知适配器数据更改。

答案 2 :(得分:0)

您可以使用广播接收器从服务到活动或片段。您必须在onResume()onPause()上注册和取消注册广播并在活动中创建广播实例并通过服务发送sendBroadcast您可以参考以下示例: http://www.truiton.com/2014/09/android-service-broadcastreceiver-example/