У меня есть эта рабочая часть кода для выбора номера из GridView, который находится внутри в AlertDialog:Закрыть AlertDialog, когда пользователь выбирает опцию
public void iconSelect (View v){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
GridView gridview = new GridView(this);
List<Integer> mList = new ArrayList<Integer>();
for (int i = 1; i < 10; i++) {
mList.add(i);
}
ArrayAdapter<Integer> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mList);
gridview.setAdapter(adapter);
gridview.setNumColumns(3);
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), "Chosen: " + position, Toast.LENGTH_SHORT).show();
}
});
builder.setView(gridview);
builder.setTitle("Icon selector");
builder.show();
}
Моя цель состоит в том, что когда пользователь выбирает номер из GridView затем диалог закрывается. Прямо сейчас он позволяет пользователю нажимать номер в gridview и показывать тост много раз, когда пользователь хочет, пока он не нажмет кнопку «Назад».
Что мне делать? Я ищу метод, похожий на builder.close() или builder.dismiss(), который должен выполняться внутри слушателя. (Создание строителя конечного переменный)
Nice! Это сработало отлично! Спасибо, Абдалла. Я обращу внимание на это. Я не знал, что делаю _voiding_ в 'builder.show()' –