TextView
のアラートダイアログとオプション付きリストを作成しました。ユーザーはリストから1つの項目を選択するか、またはEditText
で新しい項目を追加することができます。リスト項目をクリックするとAlertDialogを非表示にします
問題は、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();
}
ListViewアイテムを選択したときにAlertDialogを非表示にするにはどうすればよいですか?
ありがとうございました。
EDIT
ファイナルコード:
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();
}
追加 "(却下)" を選択した項目のためのあなたのonClickリスナーへ。ダイアログを閉じる必要があります。 – Devsil
それは動作しません。私はそれを試み、builder.hide()は何も動作しません。 –