gpt4 book ai didi

java - 如何禁用Android中的对话框按钮?

转载 作者:行者123 更新时间:2023-12-02 08:48:44 27 4
gpt4 key购买 nike

我有一个自定义对话框,如果特定的 EditText 为空,我想禁用 PositiveButton。我找不到如何在对话框中执行此操作。
这是我的代码:

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.layout_add_apero, null);

builder.setView(view)
.setTitle("Super un nouvel apéro !")
.setNegativeButton("Annuler", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {

}
})
.setPositiveButton("Ajouter", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String titre_apero = editTextApero.getText().toString();
String date_apero = editTextDate.getText().toString();
listener.applyTexts(titre_apero, date_apero);
}
});

editTextApero = view.findViewById(R.id.edit_apero);
editTextDate = view.findViewById(R.id.edit_date);

return builder.create();
}

因此,如果字段 editTextAperoeditTextDate 为空,我想禁用 PositiveButton 或执行弹出窗口(但它会是对话框上的弹出窗口(也是一种弹出窗口),说明用户必须填写每个字段。

最佳答案

仅当您的条件为真时,才拆分构建器表达式并添加肯定按钮。

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

if(editTextApero.getText().length() != 0) {
builder.setPositiveButton("Ajouter", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String titre_apero = editTextApero.getText().toString();
String date_apero = editTextDate.getText().toString();
listener.applyTexts(titre_apero, date_apero);
}
});
}

编辑我认为这是一种可能的方式:

将按钮设置为禁用以启动:

((AlertDialog)dialog).getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);

然后为 EditText 设置文本更改监听器:

editTextApero.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

@Override
public void afterTextChanged(Editable s) {

if (TextUtils.isEmpty(s)) {
((AlertDialog) dialog).getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
} else {
((AlertDialog) dialog).getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(true);
}
}
});

如果你想让它不可见,请使用:

((AlertDialog)dialog).getButton(AlertDialog.BUTTON_POSITIVE).setVisibility(View.INVISIBLE);

并向后退

((AlertDialog)dialog).getButton(AlertDialog.BUTTON_POSITIVE).setVisibility(View.VISIBLE);

关于java - 如何禁用Android中的对话框按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60915908/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com