Android Tab Button: обрабатывать событие нажатия / нажатия - PullRequest
1 голос
/ 13 мая 2011

Пожалуйста, посмотрите следующий фрагмент кода:

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

// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("home").setIndicator("Home", 
               res.getDrawable(R.drawable.ic_tab_home)).setContent(intent);
tabHost.addTab(spec);

Теперь, когда я нажимаю на кнопку вкладки, она показывает соответствующую активность, но затем я нажимаю кнопку еще раз, я хочу также обнаружить этот щелчок, даже если вкладка фактически является «текущей» или активной вкладкой, есть ли она в любом случае сделать это? В spec.

я не нашел ни одного установленного метода прослушивателя.

Ответы [ 2 ]

1 голос
/ 13 мая 2011

Ну, я не думаю, что есть что-то, что делает это как часть элемента управления вкладками.Однако есть несколько вещей, которые вы можете попробовать.

  1. Переопределите метод onNewIntent для HomeTabActivity и посмотрите, будут ли они отправлять намерение каждый раз, когда вкладка нажата, хотя я сомневаюсь в этом.
  2. Вы можете попробовать поместить слушателя в представление, возвращаемое методом getCurrentTabView в TabHost
0 голосов
/ 29 декабря 2011

вызов метода ниже с использованием setListener (TabWidgetActivity);вызывайте его непосредственно перед созданием вкладок.

    void setListener(final TabActivity tabActivity)
    {
        tabActivity.getTabHost().setOnTabChangedListener(new OnTabChangeListener()         {

            public void onTabChanged(String tabId) 
            {

            }
        });

        tabActivity.getTabHost().setOnLongClickListener( new OnLongClickListener() {    

            public boolean onLongClick(View v) 
            {

                return false;
            }
        });
    }
...