1

我有一个带有一些选项卡的 TabHost,在一个选项卡上长按后,我想获取被长按的选项卡的位置或标签,而不是显示的当前选项卡。下面有一些代码,我在其中为 TabHost 创建了长按侦听器:

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

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

有什么解决办法吗?在我的情况下,在 TabHost 应用侦听器是否正确?

4

2 回答 2

2

我解决了我的问题,将标签信息添加到选项卡的视图中,然后我在视图中附加了一个获取并打印此标签的侦听器:

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;
            }
        });
于 2013-07-05T07:03:12.707 回答
0

被长按的选项卡的标识符位于函数的View v参数中onLongClick。打电话v.getId(),剩下的就是细节

于 2013-07-04T14:24:15.957 回答