@Override
public void onBindViewHolder(ViewHolder holder, int position) {
User user = mUsers.get(position);
String currentuser = FirebaseAuth.getInstance().getCurrentUser().getEmail();
new AddTodatabase4(user.email,currentuser).execute();
System.out.println("checking check"+check);
if(check==1){
holder.status.setText("message");}
String alphabet = user.email.substring(0, 1);
holder.txtUsername.setText(user.email);
holder.txtUserAlphabet.setText(alphabet);
// System.out.println(currentuser+" "+user.email);
}
这里,addtodatabase4扩展了asynctask,check是一个全局变量。我希望保持onbindviewholder的其余执行,直到addtodatabase4完成其执行,因为我在使用settext设置状态textview时需要修改的check值。如何实现这一目标。使用此代码addtodatabse4最后执行。
答案 0 :(得分:0)
创建一个标志:
public static boolean isDownloadFinished = false;
@Override
protected void onPreExecute() {
super.onPreExecute();
isDownloadFinished = false;
}
在onPostExecute
内设置isDownloadFinished为true
。
@Override
protected void onPostExecute(Boolean success) {
super.onPreExecute();
if (success) {
isDownloadFinished = true;
}else{
isDownloadFinished = false;
}
}
然后:
if(YourClass.isDownloadFinished){
// do your task here
}
答案 1 :(得分:0)
我将整个视图传递给asynctask,然后在检查条件后自行设置状态textview。
答案 2 :(得分:0)
尝试将holder
传递给像
new AddTodatabase4(user.email,currentuser, holder).execute();
并在AsyncTask的onPostCreate
中的文件夹中设置textViews。