Java 下载完成后如何隐藏微调器(进度条)?
我正在开发一个下载文件的应用程序,如果你点击其中一个项目,我有recyclerview->cardview(10-20个项目) 下载文件的过程开始了,同时我添加了一个微调器,让用户知道下载正在进行中 但我在下载完成后取消微调器时遇到问题,因为我不知道如何引用回特定的cardview 在recyclerview上,是否需要传递卡片视图的位置、微调器(progressbar)id 任何帮助都将不胜感激,谢谢 从我的适配器类Java 下载完成后如何隐藏微调器(进度条)?,java,android,android-recyclerview,download,android-cardview,Java,Android,Android Recyclerview,Download,Android Cardview,我正在开发一个下载文件的应用程序,如果你点击其中一个项目,我有recyclerview->cardview(10-20个项目) 下载文件的过程开始了,同时我添加了一个微调器,让用户知道下载正在进行中 但我在下载完成后取消微调器时遇到问题,因为我不知道如何引用回特定的cardview 在recyclerview上,是否需要传递卡片视图的位置、微调器(progressbar)id 任何帮助都将不胜感激,谢谢 从我的适配器类 @Override public void onBindViewHolder
@Override
public void onBindViewHolder(@NonNull final FirstLevelViewHolder holder, final int position) {
ItemsLevel2 currentItem = fItems.get(position);
final String id = currentItem.getId();
final String name = currentItem.getName();
holder.id.setText(id);
holder.ame.setText(name);
holder.fImageButton .setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.img.setVisibility(View.INVISIBLE);
holder.spinner.setVisibility(View.VISIBLE);
downloadFile(name);
}
});
}
这里我有下载的所有代码
downloadFile(String name) {
}
如果您是从服务器下载文件,那么应该使用AsyncTask并在
doInBackground()
方法中下载文件,在onPreExecute()
中显示进度条,并在onPostExecute()
中关闭微调器
公共类下载FileAsyncTask扩展AsyncTask{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
//显示进度条
}
@凌驾
受保护的字符串背景(字符串…字符串){
//下载文件()
返回null;
}
@凌驾
受保护的void onPostExecute(字符串s){
super.onPostExecute(s);
//闭式旋转器
}
}
如果您是从服务器下载文件,那么您应该使用AsyncTask并在doInBackground()
方法中下载您的文件,在onPreExecute()
中显示进度条,并在onPostExecute()中关闭微调器
公共类下载FileAsyncTask扩展AsyncTask{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
//显示进度条
}
@凌驾
受保护的字符串背景(字符串…字符串){
//下载文件()
返回null;
}
@凌驾
受保护的void onPostExecute(字符串s){
super.onPostExecute(s);
//闭式旋转器
}
}
添加一些解释,而不仅仅是添加代码。现在连我都无法理解你写的东西。我不确定这一点:这段代码会在用户再次单击按钮时检查下载完成情况。相反,应该有一个下载完成的活动通知,以便UI可以立即处理。添加一些解释,而不仅仅是添加代码。现在连我都无法理解你写的东西。我不确定这一点:这段代码会在用户再次单击按钮时检查下载完成情况。相反,应该有一个活动通知,说明下载已完成,以便用户界面可以立即处理。您可以向我们显示您的下载文件代码吗?您可以向我们显示您的下载文件代码吗?
int downloadFile(String name) {
if (finish) return 1;
}
////////////////////////////////////////
public void onClick(View v) {
holder.spinner.setVisibility(View.VISIBLE);
if( downloadFile(name))==1{
holder.spinner.setVisibility(!View.VISIBLE);
}
}
public class DownloadFileAsyncTask extends AsyncTask<String,String,String>{
@Override
protected void onPreExecute() {
super.onPreExecute();
//show Progressbar
}
@Override
protected String doInBackground(String... strings) {
//downloadFile()
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//close spinner
}
}