解决该问题的方法是在显示对话框之前使用一个延迟来避免黑屏的出现。以下是一个示例代码:
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button showDialogButton;
private AlertDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showDialogButton = findViewById(R.id.show_dialog_button);
showDialogButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialogWithDelay();
}
});
}
private void showDialogWithDelay() {
// 使用 Handler 来延迟显示对话框
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
showDialog();
}
}, 1000); // 延迟 1 秒钟显示对话框
}
private void showDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("对话框标题");
builder.setMessage("对话框内容");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 点击确定按钮的处理逻辑
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 点击取消按钮的处理逻辑
}
});
dialog = builder.create();
dialog.show();
}
}
在该示例代码中,我们使用了一个 Handler
对象来延迟 1 秒钟显示对话框。当用户点击按钮时,showDialogWithDelay()
方法会被调用,在该方法中,我们使用 Handler
对象的 postDelayed()
方法来延迟 1 秒钟后执行 showDialog()
方法。在 showDialog()
方法中,我们创建了一个 AlertDialog
对象,并调用了 show()
方法来显示对话框。通过这种方式,我们可以避免在对话框显示之前出现黑屏的问题。
上一篇:安卓对话框弹出
下一篇:安卓多窗口使用时应用程序崩溃