我找到了一些代码来按代码中的主页按钮
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
和这个:
moveTaskToBack(true);
我从事的活动是单项任务
然后是带有按钮的 alertDialog ,然后单击该代码之一,然后运行并返回首页
因此,当您再次进入应用程序时,警报会在之前取消
我想重新启动应用程序而不退出alertDialog
我该怎么办?
谢谢
答案 0 :(得分:0)
在使用Builder创建AlertDialog时,您可以设置 setCancelable(false); 。
答案 1 :(得分:0)
AlertDialog默认按钮将显示对话框。 您应该使用自定义视图创建自定义对话框
override fun onCreate(savedInstanceState: Bundle?) {
try {
Thread.sleep(400)
} catch (e: InterruptedException) {
e.printStackTrace()
}
setTheme(R.style.your_main_theme)
super.onCreate(savedInstanceState)
setContentView(...)
init()
}
和布局dialog_custom也可以自己设计,但这是我用于自定义对话框的布局文件
public class CustomDialog extends AlertDialog(){
TextView mTitleView,mDescriptionView;
Button mYesButton,mNoButton,mCancelButton;
boolean isYesButtonVisible = true;
boolean isNoButtonVisible = true;
boolean isCancelButtonVisible = true;
public CustomDialog(Context context){
super(context);
}
public void setYesButtonVisible(boolean isVisible){
isYesButtonVisible = isVisible
}
public void setNoButtonVisible(boolean isVisible){
isNoButtonVisible = isVisible
}
public void setCancelButtonVisible(boolean isVisible){
isCancelButtonVisible = isVisible
}
@override
public void show(){
super.show();
setContentView(R.layout.dialog_custom);
mTitleView = findViewById(R.id.text_title);
mDescriptionView = findViewById(R.id.text_description);
mYesButton = findViewById(R.id.btn_yes);
mNoButton = findViewById(R.id.btn_no);
mCancelButton = findViewById(R.id.btn_cancel);
isYesButtonVisible ? mYesButton.setVisibility(View.VISIBLE) : mYesButton.setVisibility(View.GONE);
isNoButtonVisible ? mNoButton.setVisibility(View.VISIBLE) : mNoButton.setVisibility(View.GONE);
isCancelButtonVisible ? mCancelButton.setVisibility(View.VISIBLE) : mCancleButton.setVisibility(View.GONE);
}
//must be called after dialog is showing else you will get NullPointerException
public void setOnYesClickListener(View.OnClickListener listener){
mYesButton.setonClickListener(listener);
}
public void setOnNoClickListener(View.OnClickListener listener){
mNoButton.setonClickListener(listener);
}
public void setOnCancelClickListener(View.OnClickListener listener){
mCancelButton.setonClickListener(listener);
}
}