У моего приложения есть куча XML-макетов. теперь я хочу добавить функциональность, в которой определенное число, т. е. 15, из них будет включено в действие. 15 макетов следует выбирать случайным образом при каждом запуске. Как мне это сделать? Я думал о массиве, но не мог найти хорошую ссылку о том, как включать xml-файлы в массив (случайный).как отображать случайные xml-макеты в android
1
A
ответ
6
ссылки на размещение являются ints. вы можете просто выбрать один с помощью:
int[] layouts = new int[] {R.layout.one, R.layout.two, R.layout.three ...};
setContentView(layouts[new Random().nextInt(layouts.length)]);
1
Вы можете переопределить Application.onCreate или в главном Activity.onCreate() и установить идентификатор ресурса нужного макета в SharedPreference.
public static final String LAYOUT_ID = "random.layout.id";
private static int[] LAYOUTS = new int[] { R.layout.default, R.layout.fancy };
public void onCreate() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.edit().putInt(LAYOUT_ID, getRandomLayoutId()).commit();
}
private int getRandomLayoutId() {
Random r = new Random(Calendar.getInstance().getTimeInMillis());
return LAYOUTS[r.nextInt(LAYOUTS.length)];
}
Этот идентификатор может быть использован где-то в вашем приложении с помощью setContentView().
private static final int DEFAULT_ID = R.layout.default;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
setContentView(getInt(MyApplication.LAYOUT_ID, DEFAULT_ID));
Если вы делаете это в своей основной деятельности, он может применять новый макет даже при изменении ориентации или подобных событиях.
Смежные вопросы
- 1. Как отображать случайные строки из листа excel в android?
- 2. Не отображать случайные числа
- 3. Как отображать случайные числа в jlabel?
- 4. Как отображать случайные изображения в браузере?
- 5. Как отображать случайные gifs последовательно в картинке
- 6. Как отображать случайные сообщения в Wordpress?
- 7. отображать случайные изображения из папки
- 8. как отображать случайные вещи без перекрытия
- 9. Как отображать случайные фигуры через JQuery
- 10. Как отображать случайные очереди без повторения?
- 11. Как отображать Случайные изображения при просмотре изображений
- 12. Случайные генераторы в Android
- 13. Как отображать случайные дочерние страницы родительской страницы в Wordpress?
- 14. Генерировать и отображать случайные сообщения - JavaScript
- 15. хотите отображать вызовы одинаковые случайные значения
- 16. , обрабатывающий случайные числа в android
- 17. Как генерировать случайные фрагменты в Android?
- 18. Как генерировать случайные события в android?
- 19. Как динамически удалять случайные представления в Android?
- 20. Как отображать календарь в Android?
- 21. Android quiz случайные вопросы
- 22. Android: как отображать клавиатуру
- 23. Случайные Android Sqlite Сбои
- 24. Случайные арифметические выражения (Android)
- 25. Случайные уведомления Android
- 26. Android Показать случайные вопросы
- 27. Как отображать случайные и отличные изображения на дисплее onclick
- 28. PHP: Как отображать случайные блоки текста из многомерного массива?
- 29. Как мне отображать случайные имена javascript без повторений?
- 30. Как отображать случайные значения id с помощью javascript
@ downvote, любые комментарии? – njzk2
-1: Прямо сейчас вы даете 0, 1, 2 как можно больше ints. Это не обязательно эквивалентно идентификаторам макета. Вы хотите иметь 'setContentView (layouts [new Random(). NextInt (layout.length)]);' – tilpner
Я уже пробовал способ, аналогичный вашему предложению, и он работает для случайного отображения любых моих макетов. но как я «динамически (?)» определяет, какой из моих 100 макетов делает его массивом как случайный выбор (всего 15, например)? – jay