Como borrar la pila de actividades con una pulsación larga desde un menú

Iniciado por MaX2, 8 Julio 2019, 19:39 PM

0 Miembros y 1 Visitante están viendo este tema.

MaX2

Hola, buenas tardes.
Tengo creado un menú horizontal "horizontalscrollmenu", y en cada una de las pestañas que contiene el menú, muestro una actividad "A", y desde la que tengo una serie de botones para mostrar otra actividad "B", y desde esta actividad mostrar una tercera actividad "C", etc...
A -> B -> C -> D -> E  En lugar de pulsar el botón de atrás x veces para llegar a mostrar la actividad "A", intento poner en esas pestañas una segunda opción con una pulsación larga para que al hacer esa pulsación se muestre la actividad "A"


He visto ejemplos de como implementar dos funciones en un botón, una de ellas con una pulsación larga, pero en mi caso no se como poner esa pulsación larga en las opciones o pestañas del menú.

Este es el código que tengo puesto para mostrar el menú con sus respectivas pestañas.

Código (java) [Seleccionar]


   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);

       Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
       setSupportActionBar(toolbar);  

       horizontal_menu = findViewById(R.id.horizontal_menu);
       viewPager = findViewById(R.id.pager);

      horizontal_menu.addItem("Menu 1", R.drawable.home_icon, true);
      horizontal_menu.addItem("Menu 2", R.drawable.round_account);
      horizontal_menu.addItem("Menu 3", R.drawable.round_account);

      horizontal_menu.showItems();

       PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager());
       viewPager.setAdapter(pagerAdapter);
       viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
           @Override
           public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
           }

           @Override
           public void onPageSelected(int position) {
                horizontal_menu.setItemSelected(position);
           }

           @Override
           public void onPageScrollStateChanged(int state) {
           }
       });

       horizontal_menu.setOnHSMenuClickListener(new HorizontalScrollMenuView.OnHSMenuClickListener() {
           @Override
           public void onHSMClick(MenuItem menuItem, int position) {
               viewPager.setCurrentItem(position);
           }
       });

   }

private class PagerAdapter extends FragmentPagerAdapter {
       PagerAdapter(FragmentManager fm) {
           super(fm);
       }

       @Override
       public Fragment getItem(int position) {
           Fragment fragment;
           switch (position) {
               case 0:
                   fragment = new Menu1();
                   break;
               case 1:
                       fragment = new Menu2();
               case 2:
                   fragment = new Menu3();
                   break;
               default:
                   fragment = null;
                   break;
           }

           return fragment;

       }

       @Override
       public int getCount() {
           return 4;
       }
   }



Si me puede ayudar alguien a implementar esa pulsación larga en las pestañas que contiene un menú, se lo agradecería, porque me tiene bloqueado.


Gracias.

MaX2

Hola, entonces no sabe nadie como detectar en este caso que botón de este menú ha sido pulsado con una una pulsación larga, y darle una segunda opción ?


Salu2.


rub'n

Primero hablas de implementar en tu primer post ahí lo dices, y ahora es detectar que botón ha sido pulsado? No veo ningún listener de ningún botón en el OnCreate()

Damn iwoa, cada botón debe tener su listener.


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen

MaX2

Hola rub'n, seguro que lo he llamado mal, al decir botón me estaba refiriendo a los botones/pestañas o Item que contiene el menú horizontal.

Cuando se pulsa el primero "el que yo he llamado Botón" que tiene el nombre "Menú 1" me muestra la activity Menu1(), y lo que intento es que al hacer una pulsación larga sobre botón Menú 1, realice otra acción, en este caso que vuelva a mostrar la primera actividad "A".

He estado leyendo que para eso hay que borrar la pila de actividades, lo que no se es si eso seria posible, me refiero a que solo borreo esa pila, y no la pila de de actividades de los otros menús.



Salu2.




MaX2