Как вызвать вкладки Onclick и OnTabChange для той же вкладки

В моем проекте у меня есть две вкладки и кнопка. Для двух вкладок у меня есть два действия и кнопка, вызывающая разные действия. дело в том, что я показываю результат нажатия кнопки на первой вкладке. я.e tab0 активен в tab0Event, а также в событии нажатия кнопки. И я могу изменить события вкладки с помощью tabHost.setOnTabChangedListener, но теперь я хочу, скажем, я нажимаю кнопку, поэтому теперь отображается вид кнопки (tab0 активен), но снова, если я нажимаю на tab0, активность tab0 должна быть отображается.

Я пробовал много решений для нажатия на вкладку, одно из них

getTabWidget().getChildAt(getTabHost().getCurrentTab()).setOnClickListener
      (new View.OnClickListener() {

      @Override public void onClick(View v) {
      System.out.println(getTabHost().getCurrentTab());

      } });

Но когда я использовал этот код с tabChnageListner, изменение вкладки не работало, и я получил очень неожиданные результаты. Не могли бы вы предложить решение моей проблемы .

Спасибо.

код, который работает для изменения вкладки, выглядит следующим образом: (работает нормально для изменения вкладки, необходимо добавить в него вкладку Onclick)

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);
                 }
            });               
      }
}
11
задан Romi 29 November 2011 в 13:07
поделиться