Выполнить tabHost.addTab() после загрузки данных

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
AlexVinn
Сообщения: 81
Зарегистрирован: 04 апр 2014, 04:56

Выполнить tabHost.addTab() после загрузки данных

Сообщение AlexVinn » 28 май 2014, 02:00

Загружаю данные в потоке и потом из потока, когда всё загрузилось, вызываю handler.
Как в этом хендлере выполнить tabHost.addTab ??
Пробую, но не получается, не могу туда вставить инит табов. В MainActivity всё работает, пробую в хендлер - косяк.

MainActivity.java
[syntax=java5]
Thread myThread = new Thread(new Runnable() {
@Override
public void run() {

xml = parser.getXmlFromUrl(this, URL); // getting XML from
mPD.dismiss();
}
});
myThread.start();

h = new Handler() {
public void handleMessage(android.os.Message msg) {

Log.d(TAG, "Handler....");

}
};

TabHost tabHost = getTabHost(); // The activity TabHost

Resources res = getResources(); // Resource object to get Drawables

Intent intent1; // Reusable Intent for each tab

// Create an Intent to launch an Activity for the tab (to be reused)
intent1 = new Intent().setClass(this, Tab1.class);
spec1 = tabHost.newTabSpec("home")
.setIndicator("HOME", res.getDrawable(R.drawable.ic_tab1_1))
.setContent(intent1);
tabHost.addTab(spec1);

tabHost.setCurrentTab(0);[/syntax]
Тут должна быть подпись.

yanchumak
Сообщения: 31
Зарегистрирован: 19 май 2014, 10:50

Re: Выполнить tabHost.addTab() после загрузки данных

Сообщение yanchumak » 28 май 2014, 20:39

Для таких вещей лучше использовать AsyncTask
з.ы. по данному коду вообще непонятно,что делает хендлер, и что тут собственно вообще происходит кроме инициализации таба

AlexVinn
Сообщения: 81
Зарегистрирован: 04 апр 2014, 04:56

Re: Выполнить tabHost.addTab() после загрузки данных

Сообщение AlexVinn » 28 май 2014, 20:53

Всё решилось вставив весь код иництализации в runOnUiThread из Thread
Тут должна быть подпись.

Ответить