處理 AlertDialog 的取消事件非常簡單。在創建 AlertDialog 時,需要使用 setCancelable(true)
方法來啟用取消功能。然后,可以為 AlertDialog 設置一個 OnCancelListener
,當用戶點擊取消按鈕時,會觸發該監聽器。
以下是一個簡單的示例,展示了如何在 Android 應用中處理 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()) {
// 在這里處理用戶取消操作,例如保存輸入的數據
Toast.makeText(MainActivity.this, "取消操作,輸入的數據為:" + inputText, Toast.LENGTH_SHORT).show();
} else {
// 在這里處理用戶點擊取消按鈕且沒有輸入任何數據的情況
Toast.makeText(MainActivity.this, "取消操作,沒有輸入任何數據", Toast.LENGTH_SHORT).show();
}
}
});
alertDialog.show();
}
}
在這個示例中,當用戶點擊取消按鈕時,會觸發 setOnCancelListener
中的 onCancel()
方法。在該方法中,我們可以獲取用戶輸入的數據(如果有的話),并根據需要執行相應的操作。