我在活动中创建了一个对话框。使用异步任务,我将定期显示该对话框。当我移动到另一个活动时是否可以显示对话框?
问问题
1098 次
2 回答
1
我过去以两种不同的方式做到了这一点。
1)创建一个用作对话框的布局(在每个活动布局中导入并隐藏),我在需要时显示(您也可以创建一个“空”活动,仅弹出该对话框并且如果您想要消息。
2)创建一个CustomDialog类并使用它(我用它来处理自定义字体,但我只会在这段代码中放一次)。
//main Activity:
DialegError da = new DialegError(this);
da.crearDialeg("APP ERROR", "this is an error");
//Error class
public class DialegError {
private Activity a = null;
public DialegError(Activity activity){
a=activity;
}
/**
* Default NO-MESSAGE errorDialog
*/
public void crearDialeg(String titol){
AlertDialog dialog = new AlertDialog.Builder(a)
.setTitle( titol )
// .setIcon(R.drawable.)
.setPositiveButton( a.getString(R.string.button_aceptar), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
return;
}
})
.show();
}
/**
* Default errorDialog
*/
public void crearDialeg(String titol, String cos){
AlertDialog dialog = new AlertDialog.Builder(a)
.setTitle( titol )
.setMessage( cos )
// .setIcon(R.drawable.)
.setPositiveButton( a.getString(R.string.button_aceptar), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
return;
}
})
.show();
//Personalized font. No way to deal with the title text.
Typeface font=Typeface.createFromAsset(a.getAssets(),"fonts/font_name.ttf");
TextView textView = (TextView)dialog.findViewById(android.R.id.message);
textView.setTypeface(font);
textView = (TextView)dialog.findViewById(android.R.id.button1);
textView.setTypeface(font);
}
/**
* Error Dialog that closes the invoker activity.
*/
public void crearDialegError(String titol, String cos, int err){
final Activity activitat = a;
final int error = err;
AlertDialog dialog = new AlertDialog.Builder(activitat)
.setTitle( titol )
.setMessage( cos )
// .setIcon(R.drawable.)
.setPositiveButton( activitat.getString(R.string.button_aceptar), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
activitat.setResult(error, new Intent());
activitat.finish();
}
})
.show();
}
}
于 2012-12-03T11:34:54.803 回答
0
您可以制作一个显示对话框的按钮,在事件 onclick 显示对话框的任何代码时,您可以设置按钮单击周期。
public void getRunningClick(){
new Handler().postDelayed(new Runnable() {
public void run() {
//your code showing dialog
}
},(2*1000));
}
希望对你有帮助
于 2012-12-03T10:31:34.953 回答