Я хочу показать модальный диалог, чтобы пользователь мог выбрать устройство Bluetooth в том случае, если я не могу угадать его по именам устройств.
Похоже, что AlertDialogue
имеет возможность показать счетчик / раскрывающийся список.
В построителе диалоговых окон предупреждений есть метод setItems
, который, кажется, мне нужен, однако его параметр CharSequence[]
, но у меня есть какой-то массив строк (я не могу точно сказать, что у меня есть, потому что все просто val
).
private fun showDialog() {
val names = (bta!!.bondedDevices).map { z -> z.name };
// What is the type of names? How can you find this out?
// How can you make it into a CharSequence[]?
val ab = AlertDialog.Builder(this);
ab.setTitle("Select device");
ab.setIcon(android.R.drawable.ic_dialog_alert); // I'd prefer a question mark.
ab.setPositiveButton("Select"){dialogueInterface, which -> Toast.makeText(applicationContext, "Selected", Toast.LENGTH_LONG).show()};
ab.setNeutralButton("Cancel"){dialogueInterface, which -> Toast.makeText(applicationContext, "Cancelled", Toast.LENGTH_LONG).show()};
ab.setItems(names); // None of the following functions can be called with the arguments supplied.
val a = ab.create();
a.setCancelable(false);
a.show();
}
Я думаю, что это работает в Java, но не в kotlin
CharSequence[] cs = list.toArray(new CharSequence[list.size()]);
Итак:
- Как в AndroidStudio узнать тип переменной? (В VisualStudio, если вы наведете курсор на
var
, всплывающая подсказка сообщит вам.) - Как в kotlin вы создадите
CharSequence[]
?