2011-06-22 10 views
5

Mam problem z ustawieniem zawartości na karcie, która została nadmuchana z pliku XML.Android: Jak dynamicznie zmieniać zawartość zawyżonej karty?

dodaję kartę do mojego TabHost („tabs”) dynamicznie, wykonując następujące czynności:

 TabSpec passSpec = tabs.newTabSpec("Pass Tab"); 
     passSpec.setIndicator("Passengers", getResources().getDrawable(R.drawable.tab_message)); 

     passSpec.setContent(new TabHost.TabContentFactory() { 
      public View createTabContent(String tag) { 
       View layout = mInflater.inflate(R.layout.tab_content_passengers, null);     
       return(layout); 
      } 
     }); 
     tabs.addTab(passSpec); 

Działa to dobrze ... co mam problemy ze zmienia treść na tej karcie później na. Czy istnieje sposób, aby to osiągnąć bez ponownego pompowania wszystkich kart z zupełnie nowymi układami?

Staram następujące nic się nie dzieje:

mInflater = LayoutInflater.from(this); 
    View layout = mInflater.inflate(R.layout.tab_content_passengers, null); 
    TextView t = (TextView) layout.findViewById(R.id.testText); 
    t.setText("Hello world??"); 

Odpowiedz

4

można zachować odniesienie do layout zmiennym (może na mapie lub czymś), a potem programowo zmodyfikować go później:

tabMap.get(tabId).findViewById(R.id.testText).setText("The text is changed now!"); 

Tak długo, jak robisz to w wątku UI, zmiany powinny być natychmiast odzwierciedlone.

+0

Niesamowite, dziękuję, wiedziałem, że to tylko głupia kwestia zakresu – TomBomb

0

spróbować zrobić

t.invalidate(); 

Powinno to zmusić go do ponownego