Foro de elhacker.net

Programación => Java => Mensaje iniciado por: MaX2 en 8 Julio 2019, 19:39 pm



Título: Como borrar la pila de actividades con una pulsación larga desde un menú
Publicado por: MaX2 en 8 Julio 2019, 19:39 pm
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
  1.  
  2.    @Override
  3.    protected void onCreate(Bundle savedInstanceState) {
  4.        super.onCreate(savedInstanceState);
  5.        setContentView(R.layout.activity_main);
  6.  
  7.        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
  8.        setSupportActionBar(toolbar);  
  9.  
  10.        horizontal_menu = findViewById(R.id.horizontal_menu);
  11.        viewPager = findViewById(R.id.pager);
  12.  
  13.       horizontal_menu.addItem("Menu 1", R.drawable.home_icon, true);
  14.       horizontal_menu.addItem("Menu 2", R.drawable.round_account);
  15.       horizontal_menu.addItem("Menu 3", R.drawable.round_account);
  16.  
  17.       horizontal_menu.showItems();
  18.  
  19.        PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager());
  20.        viewPager.setAdapter(pagerAdapter);
  21.        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
  22.            @Override
  23.            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
  24.            }
  25.  
  26.            @Override
  27.            public void onPageSelected(int position) {
  28.                 horizontal_menu.setItemSelected(position);
  29.            }
  30.  
  31.            @Override
  32.            public void onPageScrollStateChanged(int state) {
  33.            }
  34.        });
  35.  
  36.        horizontal_menu.setOnHSMenuClickListener(new HorizontalScrollMenuView.OnHSMenuClickListener() {
  37.            @Override
  38.            public void onHSMClick(MenuItem menuItem, int position) {
  39.                viewPager.setCurrentItem(position);
  40.            }
  41.        });
  42.  
  43.    }
  44.  
  45. private class PagerAdapter extends FragmentPagerAdapter {
  46.        PagerAdapter(FragmentManager fm) {
  47.            super(fm);
  48.        }
  49.  
  50.        @Override
  51.        public Fragment getItem(int position) {
  52.            Fragment fragment;
  53.            switch (position) {
  54.                case 0:
  55.                    fragment = new Menu1();
  56.                    break;
  57.                case 1:
  58.                        fragment = new Menu2();
  59.                case 2:
  60.                    fragment = new Menu3();
  61.                    break;
  62.                default:
  63.                    fragment = null;
  64.                    break;
  65.            }
  66.  
  67.            return fragment;
  68.  
  69.        }
  70.  
  71.        @Override
  72.        public int getCount() {
  73.            return 4;
  74.        }
  75.    }
  76.  


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.


Título: Re: Como borrar la pila de actividades con una pulsación larga desde un menú
Publicado por: MaX2 en 15 Julio 2019, 18:36 pm
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.



Título: Re: Como borrar la pila de actividades con una pulsación larga desde un menú
Publicado por: rub'n en 15 Julio 2019, 21:25 pm
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.


Título: Re: Como borrar la pila de actividades con una pulsación larga desde un menú
Publicado por: MaX2 en 15 Julio 2019, 21:44 pm
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.





Título: Re: Como borrar la pila de actividades con una pulsación larga desde un menú
Publicado por: MaX2 en 23 Julio 2019, 18:12 pm
Entonces hay alguna forma de poder hacer esto ?


Salu2.