在Android Tabview中捕获选项卡单击事件

我在我的Android应用程序中有一个tabview,有3个标签。 标签都运行正常。

现在,我想在单击当前活动选项卡的选项卡(在顶部)时执行一些额外的逻辑。

这是一个例子:

在我的一个标签中,我提供了一个选项,供用户按不同顺序对事物进行排序。 当按下当前活动选项卡的选项卡时,我想重置所有这些排序。

是否可以在tabview中捕获选项卡单击事件并执行一些额外的逻辑?

编辑:编辑清晰。

如果你想要寻找解决方案,我可能会find一个解决方案。 看看这里: Android TabWidget检测点击当前选项卡

这是您的代码应该如何工作:

 getTabWidget().getChildAt(getTabHost().getCurrentTab()).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //do whatever you need } }); 

我find了一个简洁的解决方案,用于检测所选标签上的点击次数

脚步:

1:扩展class级中的TabActivity。 2:在onResume()方法中实现以下方法

对于每个选项卡(i)实现此:

 TabHost tabHost = getTabHost(); public void onResume() { super.onResume(); tabHost.getTabWidget().getChildAt(0).setOnClickListener(new OnClickListener() { public void onClick(View v) { count++; tabHost.setCurrentTab(0); //based on your count value..you can do anything...like going back to homepage... // similar thing exist on iphone (double tab a tab..it takes back to homepage) } }); } 

由于我们总是有固定数量的选项卡,因此单独实施它不是问题。

  for(int i=0;i 

你需要一个全局variables;

  private int prevTab = 1; //any tab except the initial one. 

这段代码适合我。 有点难看的是你必须为tab和view设置相同的标签例如;

  intent = new Intent().setClass(this, AnaSayfa.class); spec = tabHost.newTabSpec("firstTab").setIndicator(makeTabIndicator(R.drawable.firstTab, "First Tab" , "firstTab")) .setContent(intent); tabHost.addTab(spec); 

和makeTabIndicator方法是这样的,

  private View makeTabIndicator(int drawable, String text, String viewTag){ View view = LayoutInflater.from(this).inflate(R.layout.tab_layout, null); ImageView image = (ImageView) view.findViewById(R.id.imageView1); image.setImageResource(drawable); image.setAdjustViewBounds(true); TextView tv = (TextView) view.findViewById(R.id.textView1); tv.setText(text); view.setTag(viewTag); return view; }