У меня есть AsyncTask, который настраивает несколько устройств, но некоторые из них могут потерпеть неудачу, и когда задача завершает попытку настроить их все, он показывает AlertDialog со всеми отказавшими устройствами. Проблема в том, что многие устройства перестают работать, потому что просмотр списка становится настолько большим, что мои диалоговые кнопки исчезают.
Код для создания диалога с использованием listView:
if (listInitialSettingsAdapter.getNerasList("fail").size() != 0) {
AlertDialog.Builder dialog = new AlertDialog.Builder(activity);
ArrayList<ScanResult> listFailedNeras = listInitialSettingsAdapter.getNerasList("fail");
ArrayList<String> listFailedNerasString = new ArrayList<>();
for (ScanResult neras :
listFailedNeras) {
listFailedNerasString.add(neras.SSID);
}
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(activity, android.R.layout.simple_list_item_1, listFailedNerasString);
ListView listView = new ListView(activity);
listView.setAdapter(arrayAdapter);
dialog.setView(listView)
.setTitle("Neras não configurados")
.setMessage("Os Neras listados abaixo não foram configurados, deseja tentar novamente?")
.setSingleChoiceItems(arrayAdapter, 0, null)
.setPositiveButton("SIM", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
InstalacaoInicialActivity.configureNerasTask = new ConfigureNerasTask(activity, listInitialSettingsAdapter.getNerasList("fail"), user, wifi, hashMapTimeZone, handler, showMeasures, listInitialSettingsAdapter);
InstalacaoInicialActivity.configureNerasTask.execute();
listInitialSettingsAdapter.updateViewWhenTryToConfigAgain(listInitialSettingsAdapter.getNerasList("fail"));
}
})
.setNegativeButton("NÂO", null)
.show();
}
Что я хочу сделать это очень просто, я хочу ограничить высоту listView и прокрутить внутри него, чтобы увидеть все устройства, которые выходят из строя, и оставить кнопки диалога неприкосновенными.
Как я могу это сделать?