Domanda

Ho bisogno di implementare le schede nei miei project.i hanno un layout, in cui ho due schede e un pulsante. Per due schede, ho due attività e il pulsante di chiamata diversa attività. Il fatto è che sto mostrando risultato del pulsante prima scheda. cioè Tab0 è attiva sul evento Tab0 e su evento click del pulsante. E sono in grado di cambiare gli eventi tabulazione utilizzando tabHost.setOnTabChangedListener, ma ora quello che più voglio è, dico Supponiamo che io clicca il bottone così ora vista pulsante viene visualizzato, ma ancora una volta, se clicco su Tab0, dovrebbe essere visualizzato l'attività Tab0.

ho usato onClick ma dopo aver usato questa mia TabChangeListner non funziona.

suggeriresti soluzione per il mio problema.

Grazie.

Di seguito è riportato il mio codice che sta lavorando bene:

public class TabLayoutUsingTabChangeEventActivity extends TabActivity {

        @Override
        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);                
            final TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost);
            final TabHost.TabSpec sp1 = tabHost.newTabSpec("TAB1");
            TabHost.TabSpec sp2 = tabHost.newTabSpec("TAB2");

            //Creating First Tab
            Intent intent1 = new Intent(this, Tab1Activity.class);
            sp1.setIndicator("TAB1").setContent(intent1);
            tabHost.addTab(sp1);

            //Creating Second Tab 
            Intent intent2 = new Intent(this, Tab2Activity.class);
            sp2.setIndicator("TAB2").setContent(intent2);
            tabHost.addTab(sp2);               

            //Tab Changed Event
            tabHost.setOnTabChangedListener(new OnTabChangeListener(){
                 @Override
                 public void onTabChanged(String tabId) {
                     Log.i("TabId :", tabId);
                     if(tabId.equals("TAB2")){
                     Log.i("TAB1", "TAB1 Changed");
                     Intent intent1 = new Intent().setClass(getApplicationContext(), Tab1Activity.class);
                     sp1.setIndicator("TAB1").setContent(intent1);
                     tabHost.setCurrentTab(0);
                     }
                  }
            });

            Button addNewButton = (Button)findViewById(R.id.add_new_ticket_btn);
            addNewButton.setOnClickListener(new OnClickListener(){
                  @Override
                  public void onClick(View v) {
                     Intent in = new Intent().setClass(getApplicationContext(), AddNewTicketActivity.class);
                     sp1.setContent(in);
                     tabHost.setCurrentTab(0);
                     //startActivity(in);
                 }
            });               
      }
}
È stato utile?

Soluzione

È necessario utilizzare AvtivityGroup a nuove attività aperte nella stessa scheda.

Questa è l'esempio completo.

http://ericharlow.blogspot.com/2010/ 09 / esperienza-multiple-android-activities.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top