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:
        }
    }
}