抱歉我的英文。很多东西需要学习。
我的应用中有TabActivity。我希望其中一个按钮在单击时显示上下文菜单。
我设法在点击其中一个标签时调用方法。但同时标签调用和活动。这个关闭了当前没有给人留下好印象的那个。
一个例子:
将标签添加到tabhost
intent = new Intent().setClass(this, NewsActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
spec = tabHost.newTabSpec(TAB_NEWS).setIndicator(getString(R.string.tab_news), res.getDrawable(R.drawable.ic_tab_news)).setContent(intent);
tabHost.addTab(spec);
如果我没有通过,意图就会出错。
intent = new Intent().setClass(this, NewsActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
spec = tabHost.newTabSpec(TAB_NEWS).setIndicator(getString(R.string.tab_news), res.getDrawable(R.drawable.ic_tab_news)).setContent(intent);
tabHost.addTab(spec);
要调用方法,我使用选项卡上的下一个侦听器
tabHost.getChildAt(1).setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//Somethig to do
e
return false;
}
});
非常感谢。
答案 0 :(得分:1)
在标签的OnTouchListener中,首先检查触摸事件是否为点击而不是任何触摸。如果您不想在单击时更改选项卡,请在onTouch中返回true。 例如:
tabHost.getChildAt(1).setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
if(action == MotionEvent.ACTION_UP)
{
//Something to do
return true; // do this if you dont want the tab to change
}
return false;
}
});