내가리스트 뷰에 대한 데이터가 저장되고 그 클래스에 내가
INT 진행라는 변수를 생성하는 직렬화 클래스를 가졌다 내가 무슨 짓을하다 그 같은 문제가 앓고
;
아무것도 내가 때문에 직렬화 클래스의 각 행에 대한 고유하고 object.Here은 예입니다이 변수에 대한 업데이트를 설정 asynsTask에서 업데이트됩니다 : -
Content.java
public class Content implements Serializable {
@SerializedName("id")
protected String id;
protected int progress = -1;
public String getId() {
return id;
}
public String setId(String id) {
this.id = id;
}
public int getProgress() {
return progress;
}
public void setProgress(int progress) {
this.progress = progress;
}
}
MainActivity.java - :
AsyncAdapter - :
public class AsyncAdapter extends ArrayAdapter<Content> {
Context context;
ArrayList<Content> items;
private static final int TYPE_MAX_COUNT = 1;
public AsyncAdapter(Context context, int resource,
int textViewResourceId, ArrayList<Content> items) {
super(context, resource, textViewResourceId, items);
this.context = context;
this.items = items;
}
public int getViewTypeCount() {
return TYPE_MAX_COUNT;
}
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
// Layout inflate code
// if else condition to visible progress bar
viewHolder.progressbar.setProgress(content.getProgress(position));
viewHolder.downloadButton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//Start service here
Intent serviceIntent = new Intent(MainActivity.this,DownloadService.class);
serviceIntent.putExtra("id",id);
startService(serviceIntent);
}});
}
}
BroadCastReceiver에서 진행률을 설정하고 진행률 표시 줄의 진행률을 업데이트 할 수 있습니다.
public class DownloadReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, final Intent intent) {
final int progress = intent.getIntExtra("progress", 0);
final String broadcastId = intent.getStringExtra("id");
for(int i=0;i<contents.size();i++) {
if(contents.getId().equals(broadcastId)) {
contents.get(i).setProgress(progress);
}
}
adapter.notifyDataSetChanged(); // to update progressbar and listview
removeStickyBroadcast(intent);
}
그리고 서비스에서 당신은 수신기에 진행을 보낼 수 있으며이 대신 asynTask.To 당신이 중 하나가 그것을 해석하는 내용의 데이터를 추가하고 GSON를 사용하여 추가 사용의 더 나은 선택이라고 생각 simultaneously.I 업데이트 할 수 있습니다 명시 적으로 추가하십시오.이 방법이 도움이되기를 바랍니다. 그러면 listview 내에서 진행 막대를 처리하는 방법을 더 잘 이해할 수 있습니다.
작업 완료시 AsyncTasks를 삭제 하시겠습니까? – AAnkit
아니요, 계속 작업해야하고 활동이 다시 작성된 후에도 새 진행 막대 –
을 업데이트 할 수 없습니다. 서비스가 더 잘 사용됩니다. 활동이 최전방에 있지 않아도 계속 작업하려면 계속 사용하십시오. – AAnkit