我想在警报框中设置 textview 文本。我想做倒计时框。我的代码如下:我的自定义警报框。
public abstract class ChallengeDialog extends AlertDialog.Builder implements OnClickListener {
TextView msg;
/**
* @param context
* @param title resource id
* @param message resource id
*/
public ChallengeDialog(Context context, String title, String message) {
super(context);
setTitle(title);
// setMessage(message);
msg = new TextView(context);
msg.setText(message);
setView(msg);
setPositiveButton("accept", this); //In android this is OK button
setNegativeButton("reject", this);//In android this is cancel button
}
public void setDialogMsg(String m){
msg.setText(m);
setView(msg);
}
/**
* will be called when "cancel" pressed.
* closes the dialog.
* can be overridden.
* @param dialog
*/
//This is cancel button
public void onOkClicked(DialogInterface dialog) {
dialog.dismiss();
}
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_POSITIVE) {
dialog.dismiss();
} else {
onOkClicked(dialog);
}
}
/**
* called when "ok" pressed.
* @param input
* @return true, if the dialog should be closed. false, if not.
*/
//This is challenge button
abstract public boolean onCancelClicked(String input);
}
使用自定义警报框的代码
ChallengeDialog chlngDialog = new ChallengeDialog(MyActivity.this,"title","count") {
@Override
public boolean onCancelClicked(String input) {
// TODO Auto-generated method stub
return false;
}
};
AlertDialog a = chlngDialog.show();
for(int i = 15 ; i>0 ;i--){
try {
chlngDialog.setDialogMsg("count "+i);
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//a.dismiss();
我在单击列表视图时执行此代码。但是警报框在 15 秒后显示,我点击了 listview 项目。我不知道为什么会这样?