Search code examples
androidtabsandroid-tabhostonlongclicklistener

Android long click on tab


I have a TabHost with some tabs, and after doing a long press on a tab, I want to get the position or the tag of the tab which was long pressed, and not the current tab that is showed. Below there is some code in which I create the long press listener for the TabHost:

myTabHost.getTabWidget().getChildAt(i).setOnLongClickListener(new OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {
        // TODO Auto-generated method stub
        return false;
    }
});

Any solution? Is correct to apply the listener at TabHost in my case?


Solution

  • I resolved my problem adding to the view of the tab a tag information , and then I attached at the view a listener that gets and prints this tag:

    View tabView= mTabHost.getTabWidget().getChildAt(i);
    // set the tag information at the view of the tab (the tag contains the position number of the tab)
    tabView.setTag( Integer.valueOf(i));
    tabView.setOnLongClickListener(new OnLongClickListener() {
    
                @Override
                public boolean onLongClick(View v) {
                    // TODO Auto-generated method stub
                    // I print the number position of the tab
                    Log.d("tab number", ((Integer)view.getTag()).toString() );
                    return false;
                }
            });