Captura del evento de clic de pestaña en la pestaña de pestañas de Android

Tengo un tabview en mi aplicación android con 3 pestañas. Las pestañas están funcionando bien.

Ahora quiero realizar alguna lógica adicional cuando se hace clic en la pestaña (en la parte superior) de la pestaña actualmente activa.

Aquí hay un ejemplo:

En una de mis pestañas, ofrezco una opción para que el usuario ordene las cosas en orden diferente. Cuando presione la pestaña de la pestaña actualmente activa, quiero restablecer todas estas clasificaciones.

¿Es posible capturar el evento de clic de pestaña en tabview y realizar alguna lógica adicional?

Editar: Editado para mayor claridad.

Si usted ares hasta buscar una solución, podría haber encontrado uno. Echa un vistazo aquí: Android TabWidget detectar haga clic en la pestaña actual

Así es como debería funcionar su código:

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

Encontré una solución sencilla y limpia para Detectar clics en la pestaña seleccionada

Pasos:

1: Extiende TabActivity en tu clase. 2: En el método onResume () implemente el siguiente método

Para cada lengüeta (i) implemente esto:

 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) } }); } 

Dado que siempre tenemos un número fijo de pestañas, implementarlo por separado no es un problema.

  for(int i=0;i<tabHost.getTabWidget().getChildCount();i++) { getTabWidget().getChildAt(i).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (getTabHost().getCurrentTabTag().equals(v.getTag())) { int nextTab = getTabHost().getCurrentTab(); tabHost.setCurrentTab(prevTab); tabHost.setCurrentTab(nextTab); prevTab = nextTab; } else tabHost.setCurrentTabByTag((String) v.getTag()); } }); } 

Necesita una variable global;

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

Este código funciona para mí. Una cosa fea poco es que debe establecer la misma etiqueta para la pestaña y la vista Por ejemplo;

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

Y makeTabIndicator método es así,

  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; } 
  • Android: Cambiar las actividades en un diseño de pestañas deslizable
  • Icono de la barra de acciones de Android png dimensions
  • TabHost definido en el diseño está dando NullPointerException durante setContent
  • Pestañas en TabLayout no llenar toda ActionBar
  • Activar / Desactivar ficha en ActionBar
  • carga diferentes actividades en pestañas
  • Cambiar el ancho de la pestaña en ActionBar.Tab
  • Android - ¿Cómo puedo localizar el indicador de pestañas entre las dos pestañas TextViews?
  • Error de logcat de Android "getExternalStorageState / mnt / sdcard" al comprobar el estado de almacenamiento externo
  • Lengüetas de diferentes tamaños en Android
  • Cómo mostrar siempre las pestañas de ActionBar debajo de ActionBar en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.