user802479
user802479

Reputation: 23

Changing a textview text dynamically when it is displayed in a tabhost

Firstly, Im new to android but have years of various other programming experience on unix, windows,but not with Java or android. Im wanting to display a tab with 3 tabs, each having a different layout file (which works). Im working on displaying a "blank" template and then the data is retrieved from an XML file once the user points a setting to one (i.e. via shared preferences).

My problem is that the function populateXMLCharacter is never called (using breakpoints). The tab activity always displays "", which is a strig the string.xml. Actually putting a breakpoint in the oncreate function never gets called either. Ive tried using a call to populateXMLCharacter in onResume, but it too never gets called.

Im thinking its because of the call to the tab:

    Resources res = getResources(); // Resource object to get Drawables
    TabHost tabHost = getTabHost();  // The activity TabHost
    TabHost.TabSpec spec;  // Resusable TabSpec for each tab

    // Do this and the same for all tabs
    spec = tabHost.newTabSpec("Description").setIndicator("Description",
     res.getDrawable(R.drawable.android)).setContent(R.layout.tab_harp_description);
    tabHost.addTab(spec);

Should I be using an intent? I thought the layout was created in a seperate function (in this case harpCSDescription.java and then this allows that activity to be inserted into the tabhost?

other functions: public class harpcsDescription extends Activity {

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView (R.layout.tab_harp_description);
 }
//@Override
protected void onResume() 
{
    // NOW WE ADD DATA TO THE TEMPLATE
    populateXMLCharacter();
}

public void populateXMLCharacter()
{

Ive tried using intents in the following manner but it simply crashes before any breakpoints are reached.

http://developer.android.com/resources/tutorials/views/hello-tabwidget.html

Can some one please guide me to what I should be doing to create an activity with data that is retrieved AFTER the tab is created?

Upvotes: 0

Views: 463

Answers (1)

Pikaling
Pikaling

Reputation: 8312

I think you need an intent. To attach an activity to a tab, write the following in the tab host:

Intent intent = new Intent(this, MyActivity.class);

and then in the tab spec write:

tabSpec = tabHost.newTabSpec("name").setIndicator(this.getString(R.string.name)).setContent(intent)

Then in the MyActivity class, you can specify the layout and load the XML data to populate the tab in the onCreate() method. You can use a different activity for each tab.

Upvotes: 1

Related Questions