Преобразование ArrayList в строковый массив

#java #android

#java #Android

Вопрос:

У меня проблема. Я хочу написать модальный текст списка для numberpicker. setDisplayValues просто принимает строку [] как я могу это сделать

 public String getSure_ad_tr() {
    return sure_ad_tr;
}

public void setSure_ad_tr(String sure_ad_tr) {
    this.sure_ad_tr = sure_ad_tr;
}

public String getSure_ad_ar() {
    return sure_ad_ar;
}

public void setSure_ad_ar(String sure_ad_ar) {
    this.sure_ad_ar = sure_ad_ar;
}
 

AnasayfaFragment.xml

 String[] sureler = new String[]{"Fatiha", "Bakara", "Ali İmran", "Nisa"};



            NPsureler.setMaxValue(sureler.length - 1);
            //implement array string to number picker
            NPsureler.setDisplayedValues(sureler);
            NPsureler.setMinValue(1);

            NPayetler.setMaxValue(7);
            NPayetler.setMinValue(1);
 

Я хочу написать не String[], а list.get(i).getSure_ad_tr() в setDisplayValues

как я могу это сделать

Комментарии:

1. Просто выполните цикл по ArrayList и добавьте элементы add String (sure_ad_tr) внутри массива.

2.Вы можете использовать следующий String [] arr = list.toArray(new String[list.size()]); toArray() метод, который поможет вам преобразовать ArrayList в массив объектов

Ответ №1:

Вы можете вызвать List.toArray() :

 String[] stringArr = new String[myList.size()];
stringArr = myList.toArray(stringArr);  
 

Или более просто объединить это в одну строку:

 String[] array = myList.toArray(new String[myList.size()]);  
 

Просто некоторая информация о том, почему я передаю новый String[] в list.toArray() :
Существует два метода, один возвращает <T[]> и один Object[] . Поскольку во время выполнения нет информации о том, что T есть на самом деле, я передаю новый строковый массив методу, чтобы он мог «определить» правильный тип.

См. Javadoc для получения дополнительной информации о List.toArray() :

https://docs.oracle.com/javase/10/docs/api/java/util/List.html