Android 创建第二个列表项后,第一个列表项内的按钮对第二个列表项执行操作 公共类FragAdapter扩展BaseAdapter实现View.OnClickListener{ WeakReference下载SwakReference; 列出下载的SPOJO; 按钮暂停、恢复、取消、打开、删除; 公共FragAdapter(WeakReference downloadswakreference,List downloadsPojos){ this.downloadswakreference=downloadswakreference; this.downloadsPojos=downloadsPojos; } @凌驾 public int getCount(){ if(downloadsPojos!=null){ 返回下载的spojos.size(); }否则{ 返回0; } } @凌驾 公共对象getItem(int i){ if(downloadsPojos!=null){ 返回下载spohos.get(i); }否则{ 返回null; } } @凌驾 公共长getItemId(int i){ 返回i; } @凌驾 公共视图getView(int i、视图视图、视图组视图组){ 如果(视图==null){ view=LayoutInflater.from(downloadswakreference.get()).flate(R.layout.download\u list\u项目,视图组,false); } ProgressBar ProgressBar=view.findViewById(R.id.downloadProgressBar); TextView name=view.findviewbyd(R.id.name); TextView down\u progress=view.findviewbyd(R.id.down\u progress); TextView download\u size=view.findviewbyd(R.id.download\u size); TextView status=view.findviewbyd(R.id.status); cancel=view.findviewbyd(R.id.cancel); pause=view.findViewById(R.id.pause); resume=view.findviewbyd(R.id.resume); open=view.findViewById(R.id.open); remove=view.findviewbyd(R.id.remove); 暂停。设置标签(i); 简历.设置标签(i); 移除。设置标签(i); 取消设置标签(i); DownloadRequest DownloadRequest=downloadsPojos.get(i); setMax((int)downloadRequest.getTotalBytes()); progressBar.setProgress((int)downloadRequest.getDownloadedBytes()); down_progress.setText(String.valueOf((int)downloadRequest.getDownloadedBytes()/100)); name.setText(downloadRequest.getFileName()); 下载_size.setText(String.valueOf((int)downloadRequest.getTotalBytes()/1000000)); //status.setText(String.valueOf(PRDownloader.getStatus(downloadsPojo.getdownloaddid())); cancel.setText(R.string.cancel); pause.setText(R.string.pause); resume.setText(R.string.resume); pause.setOnClickListener(这个); resume.setOnClickListener(这个); cancel.setOnClickListener(此); open.setOnClickListener(this); remove.setOnClickListener(这个); 返回视图; } 公共无效更新结果(列出结果){ downloadsPojos=结果; notifyDataSetChanged(); } 公共无效隐藏视图(){ 取消.setVisibility(View.GONE); remove.setVisibility(View.VISIBLE); 暂停。设置可见性(查看。消失); resume.setVisibility(View.GONE); open.setVisibility(View.VISIBLE); } @凌驾 公共void onClick(视图){ 开关(view.getId()){ 案例R.id.取消: int cancelTag=(int)view.getTag(); PRDownloader.cancel(Constant.downloadsPojoList.get(cancelTag.getdownloaddid()); for(int i=0;i
在此列表中,每个列表项有五个按钮:暂停、恢复、取消、打开和删除。一次显示两个按钮,另一个按钮的可见性消失。 这是一个下载列表,通过两个按钮显示正在下载的文件,分别为“取消”和“暂停”。单击“暂停”按钮后,暂停可见性将消失,恢复可见性将变为可见;单击“恢复”按钮后,恢复的可见性将消失,暂停可见性将变为可见Android 创建第二个列表项后,第一个列表项内的按钮对第二个列表项执行操作 公共类FragAdapter扩展BaseAdapter实现View.OnClickListener{ WeakReference下载SwakReference; 列出下载的SPOJO; 按钮暂停、恢复、取消、打开、删除; 公共FragAdapter(WeakReference downloadswakreference,List downloadsPojos){ this.downloadswakreference=downloadswakreference; this.downloadsPojos=downloadsPojos; } @凌驾 public int getCount(){ if(downloadsPojos!=null){ 返回下载的spojos.size(); }否则{ 返回0; } } @凌驾 公共对象getItem(int i){ if(downloadsPojos!=null){ 返回下载spohos.get(i); }否则{ 返回null; } } @凌驾 公共长getItemId(int i){ 返回i; } @凌驾 公共视图getView(int i、视图视图、视图组视图组){ 如果(视图==null){ view=LayoutInflater.from(downloadswakreference.get()).flate(R.layout.download\u list\u项目,视图组,false); } ProgressBar ProgressBar=view.findViewById(R.id.downloadProgressBar); TextView name=view.findviewbyd(R.id.name); TextView down\u progress=view.findviewbyd(R.id.down\u progress); TextView download\u size=view.findviewbyd(R.id.download\u size); TextView status=view.findviewbyd(R.id.status); cancel=view.findviewbyd(R.id.cancel); pause=view.findViewById(R.id.pause); resume=view.findviewbyd(R.id.resume); open=view.findViewById(R.id.open); remove=view.findviewbyd(R.id.remove); 暂停。设置标签(i); 简历.设置标签(i); 移除。设置标签(i); 取消设置标签(i); DownloadRequest DownloadRequest=downloadsPojos.get(i); setMax((int)downloadRequest.getTotalBytes()); progressBar.setProgress((int)downloadRequest.getDownloadedBytes()); down_progress.setText(String.valueOf((int)downloadRequest.getDownloadedBytes()/100)); name.setText(downloadRequest.getFileName()); 下载_size.setText(String.valueOf((int)downloadRequest.getTotalBytes()/1000000)); //status.setText(String.valueOf(PRDownloader.getStatus(downloadsPojo.getdownloaddid())); cancel.setText(R.string.cancel); pause.setText(R.string.pause); resume.setText(R.string.resume); pause.setOnClickListener(这个); resume.setOnClickListener(这个); cancel.setOnClickListener(此); open.setOnClickListener(this); remove.setOnClickListener(这个); 返回视图; } 公共无效更新结果(列出结果){ downloadsPojos=结果; notifyDataSetChanged(); } 公共无效隐藏视图(){ 取消.setVisibility(View.GONE); remove.setVisibility(View.VISIBLE); 暂停。设置可见性(查看。消失); resume.setVisibility(View.GONE); open.setVisibility(View.VISIBLE); } @凌驾 公共void onClick(视图){ 开关(view.getId()){ 案例R.id.取消: int cancelTag=(int)view.getTag(); PRDownloader.cancel(Constant.downloadsPojoList.get(cancelTag.getdownloaddid()); for(int i=0;i,android,android-layout,Android,Android Layout,在此列表中,每个列表项有五个按钮:暂停、恢复、取消、打开和删除。一次显示两个按钮,另一个按钮的可见性消失。 这是一个下载列表,通过两个按钮显示正在下载的文件,分别为“取消”和“暂停”。单击“暂停”按钮后,暂停可见性将消失,恢复可见性将变为可见;单击“恢复”按钮后,恢复的可见性将消失,暂停可见性将变为可见 public class FragAdapter extends BaseAdapter implements View.OnClickListener { WeakRefer
public class FragAdapter extends BaseAdapter implements View.OnClickListener {
WeakReference<Context> downloadsWeakReference;
List<DownloadRequest> downloadsPojos;
Button pause, resume, cancel, open, remove;
public FragAdapter(WeakReference<Context> downloadsWeakReference, List<DownloadRequest> downloadsPojos) {
this.downloadsWeakReference = downloadsWeakReference;
this.downloadsPojos = downloadsPojos;
}
@Override
public int getCount() {
if (downloadsPojos != null) {
return downloadsPojos.size();
} else {
return 0;
}
}
@Override
public Object getItem(int i) {
if (downloadsPojos != null) {
return downloadsPojos.get(i);
} else {
return null;
}
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
if (view == null) {
view = LayoutInflater.from(downloadsWeakReference.get()).inflate(R.layout.download_list_item, viewGroup, false);
}
ProgressBar progressBar = view.findViewById(R.id.downloadProgressBar);
TextView name = view.findViewById(R.id.name);
TextView down_progress = view.findViewById(R.id.down_progress);
TextView download_size = view.findViewById(R.id.download_size);
TextView status = view.findViewById(R.id.status);
cancel = view.findViewById(R.id.cancel);
pause = view.findViewById(R.id.pause);
resume = view.findViewById(R.id.resume);
open = view.findViewById(R.id.open);
remove = view.findViewById(R.id.remove);
pause.setTag(i);
resume.setTag(i);
remove.setTag(i);
cancel.setTag(i);
DownloadRequest downloadRequest = downloadsPojos.get(i);
progressBar.setMax((int) downloadRequest.getTotalBytes());
progressBar.setProgress((int) downloadRequest.getDownloadedBytes());
down_progress.setText(String.valueOf((int) downloadRequest.getDownloadedBytes() / 100));
name.setText(downloadRequest.getFileName());
download_size.setText(String.valueOf((int) downloadRequest.getTotalBytes() / 1000000));
//status.setText(String.valueOf(PRDownloader.getStatus(downloadsPojo.getDownloadId())));
cancel.setText(R.string.cancel);
pause.setText(R.string.pause);
resume.setText(R.string.resume);
pause.setOnClickListener(this);
resume.setOnClickListener(this);
cancel.setOnClickListener(this);
open.setOnClickListener(this);
remove.setOnClickListener(this);
return view;
}
public void updateResults(List<DownloadRequest> results) {
downloadsPojos = results;
notifyDataSetChanged();
}
public void hideView() {
cancel.setVisibility(View.GONE);
remove.setVisibility(View.VISIBLE);
pause.setVisibility(View.GONE);
resume.setVisibility(View.GONE);
open.setVisibility(View.VISIBLE);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.cancel:
int cancelTag = (int) view.getTag();
PRDownloader.cancel(Constant.downloadsPojoList.get(cancelTag).getDownloadId());
for (int i = 0; i < Constant.downloadsPojoList.size(); i++) {
if (Constant.downloadsPojoList.get(i).getDownloadId() == Constant.downloadsPojoList.get(cancelTag).getDownloadId()) {
Log.e("constant", "constant");
Constant.downloadsPojoList.remove(i);
}
}
updateResults(Constant.downloadsPojoList);
break;
case R.id.pause:
int pos = (int) view.getTag();
PRDownloader.pause(Constant.downloadsPojoList.get(pos).getDownloadId());
pause.setVisibility(View.GONE);
resume.setVisibility(View.VISIBLE);
break;
case R.id.resume:
int posi = (int) view.getTag();
PRDownloader.resume(Constant.downloadsPojoList.get(posi).getDownloadId());
Log.e("resume", String.valueOf(posi));
pause.setVisibility(View.VISIBLE);
resume.setVisibility(View.GONE);
break;
case R.id.open:
//For showing downloads folder.
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + File.separator + "sachin")), "*/*");
downloadsWeakReference.get().startActivity(Intent.createChooser(intent, "Open Downloads using"));
break;
case R.id.remove:
int removeTag = (int) view.getTag();
for (int i = 0; i < Constant.downloadsPojoList.size(); i++) {
if (PRDownloader.getStatus(Constant.downloadsPojoList.get(i).getDownloadId()) == PRDownloader.getStatus(Constant.downloadsPojoList.get(removeTag).getDownloadId())) {
Constant.downloadsPojoList.remove(i);
Log.e("removed", "removed");
}
}
updateResults(Constant.downloadsPojoList);
break;
default:
}
}
}