Jac*_*ava 1 android android-alertdialog
我创建了TextView一个带有选项的警报对话框和一个列表。用户可以从列表中选择一项,也可以使用EditText.
问题是alertDialog只有当我给按钮添加新的时才会隐藏,而不是当我点击列表中的一个项目时。
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
final LayoutInflater inflater = getLayoutInflater();
final View dialogGroup = inflater.inflate(R.layout.select_group_layout, null);
final EditText newGroup = dialogGroup.findViewById(R.id.new_group);
final ListView listView = dialogGroup.findViewById(R.id.groups_list);
listView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, list));
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
HelperTools.showInfo("Selected group: " + ((TextView) view).getText(), getClass());
}
});
builder.setView(dialogGroup)
.setTitle(R.string.departments_txt)
.setPositiveButton("Añadir", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
contactDepartment = newGroup.getText().toString();
HelperTools.showInfo("Selected group: " + contactDepartment, getClass());
}
});
if (list.size() != 0) {
builder.create();
builder.show();
}
Run Code Online (Sandbox Code Playgroud)
当他们选择 ListView 项目时如何隐藏 AlertDialog?
谢谢。
编辑
最终代码:
final AlertDialog builder = new AlertDialog.Builder(this).create();
final LayoutInflater inflater = getLayoutInflater();
final View dialogGroup = inflater.inflate(R.layout.select_group_layout, null);
final EditText newGroup = dialogGroup.findViewById(R.id.new_group);
final ListView listView = dialogGroup.findViewById(R.id.groups_list);
listView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, list));
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
HelperTools.showInfo("Selected group: " + ((TextView) view).getText(), getClass());
builder.dismiss();
}
});
builder.setView(dialogGroup);
builder.setTitle(R.string.departments_txt);
builder.setButton(Dialog.BUTTON_POSITIVE, "Añadir", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
contactDepartment = newGroup.getText().toString();
HelperTools.showInfo("Selected group: " + contactDepartment, getClass());
}
});
if (list.size() != 0) {
builder.show();
}
Run Code Online (Sandbox Code Playgroud)
添加 builder.dismiss(); 单击列表视图中的项目后。
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
HelperTools.showInfo("Selected group: " + ((TextView) view).getText(), getClass());
builder.dismiss();
}
});
Run Code Online (Sandbox Code Playgroud)
编辑:
像这样创建AlterDialog
final AlertDialog builder = new AlertDialog.Builder(this).create();
Run Code Online (Sandbox Code Playgroud)
显示对话框
builder.show();
Run Code Online (Sandbox Code Playgroud)
取消对话
builder.dismiss();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1144 次 |
| 最近记录: |