我在Bindviewholder内的片段中使用了progressDialog,它将在其中加载,直到未在线填充图像和文本为止。但是我希望进度对话框在加载完成后就消失或隐藏,但是我确实将进度对话框放在了下面
youTubeThumbnailLoader.release();
但是仍未显示进度对话框,并且该对话框是可见的。 如何隐藏进度对话框。请帮助
下面是我的代码
public class YoutubeVideoAdapter extends RecyclerView.Adapter<YoutubeViewHolder> {
private static final String TAG = YoutubeVideoAdapter.class.getSimpleName();
ProgressDialog progressDialog;
private Context context;
private ArrayList<YoutubeVideoModel> youtubeVideoModelArrayList;
public YoutubeVideoAdapter(Context context, ArrayList<YoutubeVideoModel> youtubeVideoModelArrayList) {
this.context = context;
this.youtubeVideoModelArrayList = youtubeVideoModelArrayList;
}
@Override
public YoutubeViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
View view = layoutInflater.inflate(R.layout.youtube_video_custom_layout, parent, false);
return new YoutubeViewHolder(view);
}
@Override
public void onBindViewHolder(YoutubeViewHolder holder, final int position) {
progressDialog = new ProgressDialog(context);
progressDialog.setMessage("Please wait..."); // Setting Message
progressDialog.setTitle("Loading"); // Setting Title
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); // Progress Dialog Style Spinner
progressDialog.show(); // Display Progress Dialog
progressDialog.setCancelable(false);
final YoutubeVideoModel youtubeVideoModel = youtubeVideoModelArrayList.get(position);
holder.videoTitle.setText(youtubeVideoModel.getTitle());
holder.videoDuration.setText(youtubeVideoModel.getDuration());
/* initialize the thumbnail image view , we need to pass Developer Key */
holder.videoThumbnailImageView.initialize(Constants.DEVELOPER_KEY, new YouTubeThumbnailView.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubeThumbnailView youTubeThumbnailView, final YouTubeThumbnailLoader youTubeThumbnailLoader) {
//when initialization is sucess, set the video id to thumbnail to load
youTubeThumbnailLoader.setVideo(youtubeVideoModel.getVideoId());
youTubeThumbnailLoader.setOnThumbnailLoadedListener(new YouTubeThumbnailLoader.OnThumbnailLoadedListener() {
@Override
public void onThumbnailLoaded(YouTubeThumbnailView youTubeThumbnailView, String s) {
//when thumbnail loaded successfully release the thumbnail loader as we are showing thumbnail in adapter
youTubeThumbnailLoader.release();
progressDialog.dismiss();
}
@Override
public void onThumbnailError(YouTubeThumbnailView youTubeThumbnailView, YouTubeThumbnailLoader.ErrorReason errorReason) {
//print or show error when thumbnail load failed
Log.e(TAG, "Youtube Thumbnail Error");
}
});
}
@Override
public void onInitializationFailure(YouTubeThumbnailView youTubeThumbnailView, YouTubeInitializationResult youTubeInitializationResult) {
//print or show error when initialization failed
Log.e(TAG, "Youtube Initialization Failure");
}
});
}
@Override
public int getItemCount() {
return youtubeVideoModelArrayList != null ? youtubeVideoModelArrayList.size() : 0;
}
}
谢谢。
答案 0 :(得分:3)
在加载所有数据后尝试以下操作:
val textView = findViewById<TextView>(R.id.text)
val textView: TextView = findViewById(R.id.text)
答案 1 :(得分:0)
您的问题指出您正在使用进度条,但是您的代码包含进度对话框,两者都不相同。要关闭进度对话框,您需要调用dismiss方法为
progressDialog.dismiss();