Autore Topic: Eliminazione elemento di ExpandableListView con swype (stile iphone)  (Letto 320 volte)

Offline esoni

  • Utente junior
  • **
  • Post: 102
  • Respect: 0
    • Mostra profilo
Ciao a tutti ho un expandablelistview vorrei dare la possibilità agli utenti di poter eliminare un elemento contenuto in uno dei gruppi della mia expandablelistview con lo swype  da sinistra verso destro ( in stile iphone). Non ho idea da dove partire.. esistono qualche librarie da includere nel mio gradle ? ho trovato qualcosa per normali listview ma niente per le expandablelistview

Offline ricky1966

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Tab
  • Sistema operativo:
    Kubuntu
Re:Eliminazione elemento di ExpandableListView con swype (stile iphone)
« Risposta #1 il: 01 Agosto 2016, 09:40:25 CEST »
0
Ciao, riprendo questo topic anche se nessuno ha risposto.
Ho seguito il tutorial di :
http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/
per creare una Expandablelistview, e ovviamente funziona egregiamente.
Nel codice della MainActivity, ho inserito :
Codice (Java): [Seleziona]
expListView.setOnTouchListener(new View.OnTouchListener() {
            float historicX = Float.NaN, historicY = Float.NaN;
            static final int DELTA = 50;

            @Override
            public boolean onTouch(View v, MotionEvent event )
            {
                // TODO Auto-generated method stub

                switch (event.getAction())
                {
                    case MotionEvent.ACTION_DOWN:
                        historicX = event.getX();
                        historicY = event.getY();
                        break;

                    case MotionEvent.ACTION_UP:
                        if (event.getX() - historicX < -DELTA)
                        {
                            int position = (int) v.getTag(0);
                            FunctionDeleteRowWhenSliding(position);
                            return true;
                        }
                        else if (event.getX() - historicX > DELTA)
                        {
                            int position = (int)v.getTag(0);
                            FunctionDeleteRowWhenSliding(position);
                            return true;
                        } break;
                    default: return false;
                }
                return false;
            }
        });

...

private void FunctionDeleteRowWhenSliding(int position){
        Toast.makeText(getApplicationContext(),"SWIPE "+String.valueOf(position),Toast.LENGTH_SHORT).show();
    }

mentre nella classe ExpandableListAdapter ho inserito semplicemente :

Codice (Java): [Seleziona]
convertView.setTag(childPosition);
nel metodo getChildView, subito prima del return.

L'applicazione mi segnala errore.

Ora, la mia richiesta è la seguente, come posso ottenere il groupPosition e il childPosition, al fine di implementare un metodo per eliminare il child item dal gruppo?

Grazie Ricky