Android: не удается найти ресурс (строковый массив) по идентификатору в адаптере страницы
Я сделал приложение, в котором есть ViewPager, работающий с подклассом PagerAdapter, который я сделал, все работало нормально, но некоторые строки были жестко запрограммированы, и я решил поместить их в ресурсы, но это вызвало некоторые проблемы, эта ошибка появляется, когда Я пытаюсь получить массив строк для метода "getPageTitle" моего PagerAdapter.
Ошибка:
android.content.res.Resources $ NotFoundException: идентификатор ресурса строкового массива # 0x7f030002
getPageTitle в моем PagerAdapter:
@Nullable
@Override
public CharSequence getPageTitle(int position) {
String[] tabTitles = Resources.getSystem().getStringArray(R.array.days_short_names);
return tabTitles[position];
}
Тем не менее, ресурс существует, здесь он находится в string_arrays.xml:
<string-array name="days_short_names">
<item>@string/monday_short</item>
<item>@string/tuesday_short</item>
<item>@string/wednesday_short</item>
<item>@string/thursday_short</item>
<item>@string/friday_short</item>
<item>@string/saturday_short</item>
<item>@string/sunday_short</item>
</string-array>
Плюс строки в strings.xml:
<string name="monday_short">Mon</string>
<string name="tuesday_short">Tue</string>
<string name="wednesday_short">Wed</string>
<string name="thursday_short">Thu</string>
<string name="friday_short">Fri</string>
<string name="saturday_short">Sat</string>
<string name="sunday_short">Sun</string>
Я даже проверил в классе R, и он там, так что я не знаю, почему это не работает.
в R.java:
public static final class array {
public static final int context_menu_actions=0x7f030000;
public static final int days_long_names=0x7f030001;
public static final int days_short_names=0x7f030002;
}
1 ответ
Я предполагаю, что вы пытаетесь получить доступ к массиву из другого класса, который не является действием, поэтому вы используете: Resources.getSystem().getStringArray(R.array.days_short_names);
Если это возможно, получите контекст действия или из getApplicationContext() в качестве параметра для конструктора вашего класса и используйте:
context.getResources().getStringArray(R.array.days_short_names);