1

我找到了一些代码来从代码中按下主页按钮

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之前解除警报我能做些什么?
谢谢

4

2 回答 2

0

在使用 Builder 创建 AlertDialog 时,您可以设置setCancelable(false); .

于 2018-07-19T18:35:34.440 回答
0

AlertDialog 默认按钮将关闭对话框。您应该使用自定义视图创建自定义对话框

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);
    }
}

和布局 dialog_custom 也可以自己设计,但这是我的自定义对话框布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/text_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="16dp"
        android:textColor="@color/black"
        android:textSize="18sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/text_description"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="16dp"
        android:textSize="16sp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/btn_yes"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingBottom="8dp"
            android:paddingLeft="16dp"
            android:paddingRight="16dp"
            android:paddingTop="8dp"
            android:text="@string/yes"
            android:textColor="@color/green_click"
            android:textSize="18sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/btn_no"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:paddingBottom="8dp"
            android:paddingLeft="16dp"
            android:paddingRight="16dp"
            android:paddingTop="8dp"
            android:text="@string/no"
            android:textColor="@color/green_click"
            android:textSize="18sp"
            android:textStyle="bold" />

        <TextView
            android:id="@id/btn_cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="24dp"
            android:paddingBottom="8dp"
            android:paddingLeft="16dp"
            android:paddingRight="16dp"
            android:paddingTop="8dp"
            android:text="@string/cancel"
            android:textColor="@color/green_click"
            android:textSize="18sp"
            android:textStyle="bold" />
    </LinearLayout>

于 2018-07-19T19:51:24.697 回答