问题描述: 当第一次调用AlertDialog时,它正常显示。但是,当第二次调用AlertDialog时,它不显示。
解决方法: 这个问题通常是因为AlertDialog的上下文被销毁或丢失所引起的。解决方法是确保每次调用AlertDialog时都使用正确的上下文。
以下是一个示例代码,演示如何正确使用AlertDialog的上下文:
public class MainActivity extends AppCompatActivity {
private Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = this;
Button showDialogButton = findViewById(R.id.show_dialog_button);
showDialogButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle("Dialog Title");
builder.setMessage("Dialog Message");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
});
}
}
在这个示例中,我们在MainActivity中保存了一个全局的Context对象。当我们点击按钮时,使用这个Context对象来构建AlertDialog。这样,每次调用AlertDialog时,都使用了正确的上下文。
希望这个解决方法对你有帮助!