Принудительно раздувать основной макет

Я попробую еще раз. Надеюсь, теперь я получу ответ, который мне очень нужен.

Только представьте: у меня есть виджет, который вызывает (после onClick) пустое действие без жестко закодированного кода, просто относительный макет с некоторыми представлениями (макет предоставляется файлом XML-макета).

Моя деятельность:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.myLayout);

Когда я добавляю цикл for в метод onCreate, который добавляет 50 кнопок (не заботьтесь о параметрах макета, ориентации и т. д.). Всего 50 простых кнопок

Нравиться:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.myLayout);
for(int i = 0; i<50; i++) {
Button btn = new Button(this);
myLayout.add(btn);
}

Я понимаю, что он только показывает активность на экране, пока не закончит добавлять все кнопки.

Мой вопрос: как я могу предотвратить это!? Как я могу отобразить действие с содержимым из файла XML-макета, а затем (ТОЛЬКО тогда) добавить одну кнопку за другой в макет.

Это возможно? Если да, то мне нужно перерисовать всю активность и так далее. Пожалуйста, дайте мне совет по моей проблеме.


person Mike    schedule 11.11.2014    source источник
comment
Поместите код кнопки onCreate for loop в onResume, как только ваш основной макет уже будет раздут...   -  person zgc7009    schedule 11.11.2014
comment
Взгляните на этот stackoverflow.com/questions/19013960/   -  person Egor Neliuba    schedule 11.11.2014
comment
@zgc7009 zgc7009 это не помогло ....   -  person Mike    schedule 11.11.2014
comment
Я имею в виду, что процессы кода выполняются довольно быстро. Если вы хотите иметь возможность визуально различать разницу между всем происходящим, вам понадобится поток с обработчиком, который имеет рабочий цикл, который спит поток между добавлением кнопок.   -  person zgc7009    schedule 11.11.2014
comment
@EgorN Я посмотрю повнимательнее, не могли бы вы дать мне небольшое объяснение в качестве ответа?   -  person Mike    schedule 11.11.2014
comment
@zgc7009 я тоже так не думаю zgc7009. Если я начну код выше, это будет очень быстро. Невозможно увидеть, просматривается ли содержимое до добавления кнопок. Но если я добавлю изображение к каждой кнопке (представьте, что кнопки теперь являются ImageButton), то я могу полностью упомянуть более длительное время запуска, и содержимое также просматривается только до тех пор, пока не будут добавлены все кнопки ImageButtons и изображения.. (с моим методом в onResume().. так что это не может быть правдой.. я также пытался запустить процедуру в UIthread... всегда одно и то же, может ли быть, что добавленная тема макета - это Theme.Dialog?   -  person Mike    schedule 11.11.2014
comment
... какие? Извините, это действительно не имеет смысла   -  person zgc7009    schedule 11.11.2014
comment
@zgc7009 zgc7009 я обновил свой комментарий. Не могли бы вы посмотреть поближе. Может быть, моя активность - это диалог. И что Диалоги каким-то образом принудительно открываются, как только обрабатывается каждый код? Я могу просто сказать вам, что я вижу, у меня есть свой метод в onResum, я расширяю цикл for до 100 и добавляю ImageView к каждой кнопке ImageButton. И макет не появляется, пока весь код не будет обработан. Но я упоминаю гораздо более длительное время запуска. Так что для меня это означает, что Activity получает все ImageButtons и изображения, а затем запускается. В противном случае активность необходимо просматривать в одно и то же время без цикла.   -  person Mike    schedule 11.11.2014
comment
Если вы используете действие с темой диалога, оно все равно должно следовать жизненному циклу действия. Дело в том, что происходит массовая загрузка всех этих данных одновременно, что вызывает отставание. Если вы хотите добавить их по отдельности, вам, вероятно, потребуется сделать отдельный исполняемый файл и делать их по частям (или по отдельности). Это то, что делает ссылка, опубликованная @EgorN. Разбивка изображения на части.   -  person zgc7009    schedule 11.11.2014