如何處理alertdialog的取消事件

小樊
83
2024-10-16 17:38:16

處理 AlertDialog 的取消事件非常簡(jiǎn)單。在創(chuàng)建 AlertDialog 時(shí),需要使用 setCancelable(true) 方法來(lái)啟用取消功能。然后,可以為 AlertDialog 設(shè)置一個(gè) OnCancelListener,當(dāng)用戶點(diǎn)擊取消按鈕時(shí),會(huì)觸發(fā)該監(jiān)聽器。

以下是一個(gè)簡(jiǎn)單的示例,展示了如何在 Android 應(yīng)用中處理 AlertDialog 的取消事件:

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showDialog();
            }
        });
    }

    private void showDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("輸入你的名字");

        View view = getLayoutInflater().inflate(R.layout.dialog_layout, null);
        final EditText input = view.findViewById(R.id.editText);

        builder.setView(view);
        builder.setCancelable(true); // 啟用取消功能

        final AlertDialog alertDialog = builder.create();
        alertDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
            @Override
            public void onCancel(DialogInterface dialog) {
                String inputText = input.getText().toString();
                if (!inputText.isEmpty()) {
                    // 在這里處理用戶取消操作,例如保存輸入的數(shù)據(jù)
                    Toast.makeText(MainActivity.this, "取消操作,輸入的數(shù)據(jù)為:" + inputText, Toast.LENGTH_SHORT).show();
                } else {
                    // 在這里處理用戶點(diǎn)擊取消按鈕且沒有輸入任何數(shù)據(jù)的情況
                    Toast.makeText(MainActivity.this, "取消操作,沒有輸入任何數(shù)據(jù)", Toast.LENGTH_SHORT).show();
                }
            }
        });

        alertDialog.show();
    }
}

在這個(gè)示例中,當(dāng)用戶點(diǎn)擊取消按鈕時(shí),會(huì)觸發(fā) setOnCancelListener 中的 onCancel() 方法。在該方法中,我們可以獲取用戶輸入的數(shù)據(jù)(如果有的話),并根據(jù)需要執(zhí)行相應(yīng)的操作。

0