2012-04-11 14 views
0

Ich mache drei Registerkarten.Registerkarte Change Listner in Android

Sprache. (Fügen Sie die Sprache Klasse mit Sprachlayout) Aktivierung (Include Aktivierung Klasse mit activate Layout) Einstellungen (Include Einstellungen Klasse mit Layout Einstellung)

In der Einstellungsliste, wenn ich die Einstellung ändern, die verbergen Wortdefinition im Sprachlayout. Und dann klicken Sie noch einmal auf die Registerkarte Sprache Wörter Übersetzung noch dort.

Ich denke, ich muss hier auf Registerkarte Change Listner gelten.

Aber was soll ich tun auf Tab Tab Change Listner.

das ist meine TabActivity.

package com.languagetranslate; 

import com.languagetranslate.Constants.Constants; 
import com.languagetranslate.dao.UserData; 

import android.app.Activity; 
import android.app.TabActivity; 
import android.content.Context; 
import android.content.Intent; 
import android.content.res.Resources; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.widget.FrameLayout; 
import android.widget.ListView; 
import android.widget.RelativeLayout; 
import android.widget.TabHost; 
import android.widget.TextView; 
import android.widget.TabHost.OnTabChangeListener; 

public class Screen1 extends TabActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.screen1); 

     initializeTabs(); 
    } 

    private void initializeTabs() { 
     TabHost tabHost = getTabHost(); // The activity TabHost 
     TabHost.TabSpec spec; // Resusable TabSpec for each tab 
     Intent intent; // Reusable Intent for each tab 

     // Create an Intent to launch an Activity for the tab (to be reused) 
     intent = new Intent().setClass(this, WordsClass.class); 

     // Initialize a TabSpec for each tab and add it to the TabHost 
     spec = tabHost.newTabSpec("Words").setIndicator("Words") 
       .setContent(intent); 
     tabHost.addTab(spec); 

     // Do the same for the other tabs 
     intent = new Intent().setClass(this, ActivateClass.class); 
     spec = tabHost.newTabSpec("Activitation").setIndicator("Activitation") 
       .setContent(intent); 
     tabHost.addTab(spec); 

     // Do the same for the other tabs 
     intent = new Intent().setClass(this, Settings.class); 
     spec = tabHost.newTabSpec("Settings").setIndicator(".\n.\n.") 
       .setContent(intent); 
     tabHost.addTab(spec); 

     tabHost.setCurrentTab(2); 


     tabHost.setOnTabChangedListener(new OnTabChangeListener() { 

      public void onTabChanged(String tabId) { 

       if (tabId == "Language"){ 

        Constants.TAGS_ENABLE = UserData.getTagSettings(getApplicationContext(), 
          Constants.SETTINGS_FILE); 
        if (Constants.TAGS_ENABLE == true) { 
         LayoutInflater inflate = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
         FrameLayout item = (FrameLayout)findViewById(android.R.id.tabcontent); 
         View child = inflate.inflate(R.layout.wordlayout, null); 
          child.findViewById(R.id.availabletags).setVisibility(View.VISIBLE); 
          child.findViewById(R.id.tags).setVisibility(View.VISIBLE); 

          item.addView(child); 
//      
//      ((TextView) findViewById(R.id.availabletags)) 
//        .setVisibility(View.VISIBLE); 
//      ((ListView) findViewById(R.id.tags)) 
//        .setVisibility(View.VISIBLE); 

        } 

       } 


      } 
     }); 
    } 
} 

Antwort

3

vielleicht können Sie die in Sprache des onResume() setzen:

@Override 
protected void onResume() 
{ 
    super.onResume(); 
    if (Constants.TAGS_ENABLE == true) { 
     // set visibility... 
    } 
} 
+0

Wenn wir die Registerkarten auf Resume-Methode aufgerufen wird? –

+0

ja, es heißt, wenn die Aktivität in den Vordergrund kommt – candyleung

+0

danke. es funktioniert –

1

Sie müssen nur onResume() in der Sprache Aktivität overide und prüfen, ob geänderte Einstellungen und wenn ja, können Sie die Logik gestellt zu Übersetzung ausblenden

onResume wird aufgerufen, wenn eine Benutzereingabe so auf die Aktivität geht,

protected void onResume() 
{ 
super.onResume(); 
if(settings_changed) 
//logic here 

} 

Sie können auch die onPause() -Methode implementieren.

+0

danckss .. es funktioniert –

Verwandte Themen