В моей деятельности я получаю некоторые большие данные из Интернета, и, получая эти данные, я хочу показать пользователю ProgressDialog с вращающимся колесом. Что я могу сделать только с введением этого кода в поток, не так ли? проблема заключается в том, что после того, как я получаю эти данные, мне нужно вставить ее в мой tableLayout как TableRows, и кажется невозможным получить доступ к TableLayout из потока.Найти TableLeyout в потоке (из-за ProgressDialog)
Что я могу сделать, чтобы показать этот диалог прогресса и получить доступ к макету таблицы из потока? Есть ли какие-либо события, которые происходят в конце потока?
Мой код не для:
_tableLayout.addView(_tableRowVar, new TableLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
Мой полный код:
final ProgressDialog dialog = ProgressDialog.show(MyActivity.this, "",
"Getting data.\nPlease wait...",true);
new Thread()
{
public void run()
{
try
{
TableLayout _tableLayout;
_tableLayout = (TableLayout)MyActivity.this.findViewById(R.id.tableLayoutID);
List<String> data = getDataFromWeb();
// Get the data and bind it into the table
publishTableLayoutWithTableRows(_tableLayout, data);
}
catch (Exception e) {
new AlertDialog.Builder(MyActivity.this)
.setMessage(e.getMessage())
.show();
}
dialog.dismiss();
}
}.start();
Отлично работает !!! – Shaulian