В своей деятельности я получаю большие данные из Интернета, и пока я получаю эти данные, я хочу показать пользователю ProgressDialog с вращающимся колесом. Что я могу сделать только с помещением этого кода в поток, верно?
проблема в том, что после того, как я получаю эти данные, мне нужно вставить их в мой tableLayout как TableRows, и кажется невозможным получить доступ к TableLayout из потока .
Что я могу сделать, чтобы показать это диалоговое окно прогресса и получить доступ к макету таблицы из потока?
Есть ли какое-либо событие, которое происходит в конце потока?
Мой код не подходит для:
_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();