-1
У меня есть виджет tabHost с динамически создаваемыми вкладками. На каждой вновь созданной вкладке имеется относительный макет с некоторыми видами (textView, listView и т. Д.).Как получить доступ к представлениям по id из tabHost?
Мой вопрос: как получить доступ к этим представлениям и как добавить сюда новый контент? Я попытался установить идентификаторы или теги, но я не работал.
public class Main extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
final TabHost tabs=(TabHost)findViewById(R.id.tabhost);
tabs.setup();
TabHost.TabSpec spec=tabs.newTabSpec("buttontab");
spec.setContent(R.id.form);
spec.setIndicator("Search-form");
tabs.addTab(spec);
Button btn=(Button)tabs.getCurrentView().findViewById(R.id.buttontab);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
final TabHost.TabSpec spec=tabs.newTabSpec("tag1");
spec.setContent(new TabHost.TabContentFactory() {
public View createTabContent(String tag)
{
// Creating a new RelativeLayout
RelativeLayout relativeLayout = new RelativeLayout(Main.this);
// Defining the RelativeLayout layout parameters.
RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.FILL_PARENT,
RelativeLayout.LayoutParams.FILL_PARENT);
TextView t = new TextView(Main.this);
// t.setId(12); //This dosen't work
t.setText("Searching in progress. Please wait...");
ListView resultsList = new ListView(Main.this);
//Here: array adapter etc
// Adding the TextView to the RelativeLayout as a child
relativeLayout.addView(t);
relativeLayout.addView(resultsList);
return relativeLayout;
}
});
spec.setIndicator("Tab with results");
tabs.addTab(spec);
new GetData(Main.this).execute();
}
});
}
public void appendResultsToViews(String result)
{
//Here i need to access TextView from tab with specific tag and append results to TextView, which was created dynamically earlier
}
Благодарим за помощь.
Я пытался, но это не сработало. Ошибка приложения. –
можете ли вы подключить трассировку стека? –
05-29 05: 53: 09.011: E/AndroidRuntime (2714): FATAL EXCEPTION: main 05-29 05: 53: 09.011: E/AndroidRuntime (2714): \t at org.miasta.wyszukiwarkapb.Main.appendResultsToViews (Main.java:111) 05-29 05: 53: 09,011: Е/AndroidRuntime (2714): \t на org.miasta.wyszukiwarkapb.Obliczenia.onProgressUpdate (GetData.java:98) 05-29 05: 53: 09.011: E/AndroidRuntime (2714): \t at org.miasta.wyszukiwarkapb.GetData.onProgressUpdate (GetData.java:1) 05-29 05: 53: 09.011: E/AndroidRuntime (2714): \t на android .os.AsyncTask $ InternalHandler.handleMessage (AsyncTask.java:432) –