Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中在运行时更新列表项?_Android_Listview - Fatal编程技术网

如何在android中在运行时更新列表项?

如何在android中在运行时更新列表项?,android,listview,Android,Listview,在我的android应用程序中,我使用FTP将文件上传到服务器。我有一个文件列表,我正在显示一个列表视图。当用户选择列表项并点击上传按钮时,它正在上传。我想显示所选文件的上传进度。我完成了这一部分,但问题是当我滚动listview时,不同文件(未选择上载)的进度会显示出来。我的确切期望就像贝洛的形象。请任何人帮助我 //fItem.getType() int fileType=fItem.getType(); long data=fItem.getData() 更新进度的代码

在我的android应用程序中,我使用FTP将文件上传到服务器。我有一个文件列表,我正在显示一个列表视图。当用户选择列表项并点击上传按钮时,它正在上传。我想显示所选文件的上传进度。我完成了这一部分,但问题是当我滚动listview时,不同文件(未选择上载)的进度会显示出来。我的确切期望就像贝洛的形象。请任何人帮助我

//fItem.getType() int fileType=fItem.getType(); long data=fItem.getData()

更新进度的代码

                                   final ListView listView = mLocalFileListView;


                                        final int firstListItemPosition = listView.getFirstVisiblePosition();
                                        final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;

                                        if (pos < firstListItemPosition || pos > lastListItemPosition ) {
                                             convertView= listView.getAdapter().getView(pos, null, listView);
                                        } else {
                                            final int childIndex = pos- firstListItemPosition;
                                             convertView=listView.getChildAt(childIndex);
                                        }
                                     convertView=listView.getChildAt(pos);


                                    //View convertView = listView.getChildAt(selectedFiles.get(0).getIndex()-first);
                                    if(convertView!=null){                                                                              
                                        ImageView iv=(ImageView)convertView.findViewById(R.id.file_list_item_icon);
                                        iv.setVisibility(View.VISIBLE);
                                        CheckBox cb=(CheckBox)convertView.findViewById(R.id.file_list_item_selector);
                                        cb.setVisibility(View.VISIBLE);
                                        TextView tv=(TextView)convertView.findViewById(R.id.textView1);
                                        ProgressBar pb=(ProgressBar)convertView.findViewById(R.id.progressBar1);
                                        pb.setVisibility(View.INVISIBLE);
                                        pb.setProgress(percent);
                                        pb.setSecondaryProgress(percent+10);
                                        tv.setVisibility(View.INVISIBLE);
                                        tv.setText(percent + "%" ); 
                                        mAdapter.notifyDataSetChanged();
final ListView ListView=mLocalFileListView;
final int firstListItemPosition=listView.getFirstVisiblePosition();
final int lastListItemPosition=firstListItemPosition+listView.getChildCount()-1;
if(poslastListItemPosition){
convertView=listView.getAdapter().getView(pos,null,listView);
}否则{
final int childIndex=pos-firstListItemPosition;
convertView=listView.getChildAt(childIndex);
}
convertView=listView.getChildAt(pos);
//View convertView=listView.getChildAt(selectedFiles.get(0.getIndex()-first);
如果(convertView!=null){
ImageView iv=(ImageView)convertView.findViewById(R.id.file\u list\u item\u图标);
iv.设置可见性(视图可见);
复选框cb=(复选框)convertView.findViewById(R.id.file\u list\u item\u选择器);
cb.setVisibility(View.VISIBLE);
TextView tv=(TextView)convertView.findViewById(R.id.textView1);
ProgressBar pb=(ProgressBar)convertView.findViewById(R.id.progressBar1);
pb.setVisibility(视图不可见);
pb.进度(百分比);
pb.设置秒程序(百分比+10);
tv.setVisibility(视图.不可见);
tv.setText(百分比+“%”);
mAdapter.notifyDataSetChanged();

是的,您需要提供问题代码我想在这里放置的代码是适配器还是活动,或者两者都是,如果它们不是太大。如果它们更大,从适配器的
getView()
开始,无论您在何处显示进度,都在synctask中添加了一个上载代码
        if(fileType == Globals.FILE_TYPE_DIRECTORY) {
            if(data <= 1){
                viewHolder.fDataTextView.setText(data+" Item");
            }
            else if(data == Long.MAX_VALUE) {
                viewHolder.fDataTextView.setText("Folder");
            }
            else {
                viewHolder.fDataTextView.setText(data+" Items");
                //viewHolder.fImageviewSelection.setVisibility(View.GONE);
            }
            viewHolder.fIconImageView.setImageResource(Globals.ICON_DIRECTORY);

        }
        else if (fileType == Globals.FILE_TYPE_APPLICATION) {
            viewHolder.fDataTextView.setText(Utilities.getHumanReadableFileSize(data,true));
            viewHolder.fIconImageView.setImageResource(Globals.ICON_APPLICATION);
        }
        else if (fileType == Globals.FILE_TYPE_AUDIO) {
            viewHolder.fDataTextView.setText(Utilities.getHumanReadableFileSize(data,true));
            viewHolder.fIconImageView.setImageResource(Globals.ICON_AUDIO);
        }
        else if (fileType == Globals.FILE_TYPE_IMAGE) {
            viewHolder.fDataTextView.setText(Utilities.getHumanReadableFileSize(data,true));
            viewHolder.fIconImageView.setImageResource(Globals.ICON_IMAGE);
        }
        else if (fileType == Globals.FILE_TYPE_TEXT) {
            viewHolder.fDataTextView.setText(Utilities.getHumanReadableFileSize(data,true));
            viewHolder.fIconImageView.setImageResource(Globals.ICON_TEXT);
        }
        else if (fileType == Globals.FILE_TYPE_VIDEO) {
            viewHolder.fDataTextView.setText(Utilities.getHumanReadableFileSize(data,true));
            viewHolder.fIconImageView.setImageResource(Globals.ICON_VIDEO);
        }
        else if (fileType == Globals.FILE_TYPE_PARENT) {
            viewHolder.fDataTextView.setText("Parent Directory");
            viewHolder.fIconImageView.setImageResource(Globals.ICON_PARENT);

        }
        else if (fileType == Globals.FILE_TYPE_OTHERS) {
            viewHolder.fDataTextView.setText(Utilities.getHumanReadableFileSize(data,true));
            viewHolder.fIconImageView.setImageResource(Globals.ICON_OTHERS);
        }
    }
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if (files.get(position).isclicked) {
                    files.get(position).isclicked = false;
                    files.get(position).index=0;
                } else {
                    files.get(position).isclicked = true;
                    files.get(position).index=position;
                }               
        }
    });

    if (files.get(position).isclicked) {
        cb.setChecked(true);           
    }
    else {
        cb.setChecked(false);
    }  


    return view;
}
                                   final ListView listView = mLocalFileListView;


                                        final int firstListItemPosition = listView.getFirstVisiblePosition();
                                        final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;

                                        if (pos < firstListItemPosition || pos > lastListItemPosition ) {
                                             convertView= listView.getAdapter().getView(pos, null, listView);
                                        } else {
                                            final int childIndex = pos- firstListItemPosition;
                                             convertView=listView.getChildAt(childIndex);
                                        }
                                     convertView=listView.getChildAt(pos);


                                    //View convertView = listView.getChildAt(selectedFiles.get(0).getIndex()-first);
                                    if(convertView!=null){                                                                              
                                        ImageView iv=(ImageView)convertView.findViewById(R.id.file_list_item_icon);
                                        iv.setVisibility(View.VISIBLE);
                                        CheckBox cb=(CheckBox)convertView.findViewById(R.id.file_list_item_selector);
                                        cb.setVisibility(View.VISIBLE);
                                        TextView tv=(TextView)convertView.findViewById(R.id.textView1);
                                        ProgressBar pb=(ProgressBar)convertView.findViewById(R.id.progressBar1);
                                        pb.setVisibility(View.INVISIBLE);
                                        pb.setProgress(percent);
                                        pb.setSecondaryProgress(percent+10);
                                        tv.setVisibility(View.INVISIBLE);
                                        tv.setText(percent + "%" ); 
                                        mAdapter.notifyDataSetChanged();