AlertDialog
是 Android 平台上用于显示对话框的类,通常包含一个或多个按钮和一个可选的 EditText
。用户可以在 EditText
中输入文本,并通过按钮进行交互。
AlertDialog
提供了一种简单的方式来与用户进行交互,特别是在需要用户输入信息时。AlertDialog
可以分为以下几种类型:
EditText
。AlertDialog
适用于以下场景:
停用 AlertDialog
的 "OK" 按钮,直到用户在 EditText
中键入文本。
用户需要在 EditText
中输入文本后才能点击 "OK" 按钮,以确保输入的有效性。
可以通过监听 EditText
的文本变化来启用或禁用 "OK" 按钮。以下是一个示例代码:
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private AlertDialog alertDialog;
private EditText editText;
private Button okButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建 AlertDialog
AlertDialog.Builder builder = new AlertDialog.Builder(this);
editText = new EditText(this);
builder.setView(editText);
builder.setPositiveButton("OK", null); // 初始设置为 null,稍后设置监听器
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
alertDialog = builder.create();
// 获取 OK 按钮
okButton = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
// 设置 TextWatcher 监听器
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
okButton.setEnabled(!s.toString().isEmpty());
}
@Override
public void afterTextChanged(Editable s) {}
});
// 显示 AlertDialog
alertDialog.show();
}
}
通过上述代码,AlertDialog
的 "OK" 按钮会在用户输入文本之前保持禁用状态,只有在 EditText
中输入文本后才会启用。这样可以确保用户输入的有效性。
领取专属 10元无门槛券
手把手带您无忧上云