【发布时间】:2017-12-19 09:03:49
【问题描述】:
我准备了带有“是/否”按钮的警报对话框的 AsyncTask。我需要返回 1 表示是,0 表示否。 我不完全了解 AsyncTask。增加点击等待时间需要做什么?当前状态不等待
代码类:
class MyTask extends AsyncTask<Void,Integer,Integer> {
TextView ozn_=null;
AlertDialog dialog=null;
AlertDialog.Builder builder=null;
ImageView icon=null;
int ret=0;
public int getRetValue(){
return ret;
}
public MyTask(int a){
ret=a;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
ozn_ = new TextView(LoginActivity.this);
AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
ImageView icon = new ImageView(LoginActivity.this);
icon.setBackgroundResource(R.drawable.warn);
builder.setMessage("oznam");
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(set_dp(60), set_dp(60));
icon.setLayoutParams(params);
ozn_.setGravity(Gravity.LEFT);
LinearLayout l1 = new LinearLayout(LoginActivity.this);
l1.setPadding(set_dp(12), set_dp(12), set_dp(12), set_dp(20));
l1.setOrientation(LinearLayout.HORIZONTAL);
l1.setGravity(Gravity.CENTER_VERTICAL);
ozn_.setPadding(set_dp(12), 0, 0, 0);
l1.addView(icon);
l1.addView(ozn_);
builder.setView(l1);
builder.setPositiveButton("Áno", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
publishProgress(11); //somewhere here is needed control of wait
getResources().notifyAll();
dialog.dismiss();
}
});
builder.setNegativeButton("Nie", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
publishProgress(222); //somewhere here is needed control of wait
getResources().notifyAll();
dialog.dismiss();
}
});
dialog = builder.create();
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface arg0) {
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(0xff00b300);
dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(0xffd56300);
}
});
dialog.setCancelable(false); //backbutton
dialog.setCanceledOnTouchOutside(false); //klick outside dialog
dialog.show();
}
@Override
protected Integer doInBackground(Void... rets) {
return ret;
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate();
ret++;
}
@Override
protected void onPostExecute(Integer aVoid) {
super.onPostExecute(aVoid);
Toast.makeText(LoginActivity.this, "post"+ret, Toast.LENGTH_SHORT).show();
}
}
活动代码:
a=654; MyTask task=new MyTask(a); task.execute(); a=task.getRetValue();
【问题讨论】:
标签: android android-asynctask dialog return android-alertdialog