Не могу разобраться как часть кода разместить в другом классе и потом получить к нему доступ.
В классе Resurs
я получаю из файла string.xml
данные и загружаю их в массив String[] title
, так же в этом же классе создаю метод findResurs()
, где загружаю в List arrImage
картинки, картинок в приложении более четырехсот, здесь для примера только две
public class Resurs {
private Context context;
List<Person> persons;
public Resurs(Context context) {
Resources res = context.getResources();
// загружаю в массив
String[] title = res.getStringArray(R.array.titleString);
}
public void findResurs(){
List arrImage = new ArrayList<>();
arrImage.add(R.drawable.img1);
arrImage.add(R.drawable.img2);}
}
Затем в Активити MainActivity
подключаюсь к классу
Resurs resurs = new Resurs(this);
Теперь как можно загрузить данные из Resurs
в persons
, другими словами получить из Resurs title
и arrImage1
int length = title.length;
persons = new ArrayList<>();
for(int i = 0; i < length; i++)
persons.add(new Person(i, title[i] arrImage1.get(i)));
Класс Person
public class Person {
long id;
String title;
int photoId;
// пустой конструктор
public Person() {
}
// конструктор с переменными
public Person(long id, String title, int photoId1) {
this.id = id;
this.title = title;
this.photoId = photoId;
}}
Я бы предложил класс Resources
(такое название правильнее Resurs
) считать набором инструментов для загрузки данных из ресурсов, а метод получения персон реализовать статичным. Например так:
public class Resources {
public static Person[] loadPersons(Context ctx){
Resources res = context.getResources();
// загружаю в массив
String[] title = res.getStringArray(R.array.titleString);
// статичное определение списка картинок
int[] images = {R.drawable.img1, R.drawable.img2, ..., R.drawable.imgN};
if(title.lenght != images.lenght)
// количество картинок не соответствует количеству имён
throw new IllegalStateException();
Person[] persons = new Person[title.lenght];
for(int i = 0; i < persons.length; i++)
persons.add(new Person(i, title[i], images.get(i)));
return persons;
}
}
Что касается кэширования - считаю, что это нужно оставить на усмотрение вызывающего кода. Не стоит перегружать класс Resources
ещё и этой ответственностью.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
При записи из JTable в Excel постоянно создается новый файл с xls, вместо создания новых листовК примеру :
Есть класс MainActivity из которого запускаю другой класс, через startintent, допустим, TwoActivityНо TwoActivity не видит интерфейс, то есть findViewById не видит ID элементов...
Подскажите лучшие инструменты для написание веб интерфейса, задача - маппинг 2х java классов