Autore Topic: Da ListView a ExpandableListView  (Letto 766 volte)

Offline liuk78

  • Utente junior
  • **
  • Post: 73
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Da ListView a ExpandableListView
« il: 23 Settembre 2011, 11:56:23 CEST »
0
Ciao a tutti
con questo pezzo di codice io setto il size del testo clickato in una riga di una ListView.

Codice (Java): [Seleziona]
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Log.d(LOG, "onItemClick");
                stackAFragment(position + 1);          
                for(int i=0; i<parent.getChildCount(); i++)
                {
                        if(i==position)
                        {
                                TextView text = (TextView)parent.getChildAt(i).findViewById(R.id.label);
                                text.setTypeface(Typeface.DEFAULT_BOLD);
                                text.setTextSize(50);
                        }
                        else
                        {
                                TextView text = (TextView)parent.getChildAt(i).findViewById(R.id.label);
                                text.setTypeface(Typeface.DEFAULT);
                                text.setTextSize(30);
                        }
                }
        }

la mia Activity implementa OnItemClickListener.

Ora io ho avuto il bisogno di trasformare la ListView in ExpandableListView e quindi ho implementato i metodi della nuova Lista

Codice (Java): [Seleziona]
        ExpandableAdapter leftMenu = new ExpandableAdapter(this, groups, names);
        l.setAdapter(leftMenu);
        l.setOnGroupExpandListener(new OnGroupExpandListener() {
                       
                        @Override
                        public void onGroupExpand(int groupPosition) {
                                //to do
                        }
                });
       
        l.setOnGroupCollapseListener(new OnGroupCollapseListener() {
                       
                        @Override
                        public void onGroupCollapse(int groupPosition) {
                                // to do
                        }
                });

Ora visto che nei nuovi metodi non ho il "parent" come faccio ad accedere agli oggetti TextView contenuti nella row della ExpandableListView?

Offline liuk78

  • Utente junior
  • **
  • Post: 73
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Da ListView a ExpandableListView
« Risposta #1 il: 23 Settembre 2011, 18:36:22 CEST »
0
ho risolto cosi

Codice (Java): [Seleziona]
        l.setOnGroupClickListener(new OnGroupClickListener() {
               
                        @Override
                        public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id)
                        {
                                                           //questo metodo mi serve per gestire il expand or collapse
                                                           //lo incollo sotto giusto per completezza
                                manageExpand(parent, groupPosition);

                                for(int i=0; i<parent.getChildCount(); i++)
                                {
                                        if(i==groupPosition)
                                        {
                                                TextView text = (TextView)parent.getChildAt(i).findViewById(R.id.label);
                                                text.setTypeface(Typeface.DEFAULT_BOLD);
                                                text.setTextSize(50);
                                        }
                                        else
                                        {
                                                TextView text = (TextView)parent.getChildAt(i).findViewById(R.id.label);
                                                                                        if(text!=null)
                                                {
                                                        text.setTypeface(Typeface.DEFAULT);
                                                        text.setTextSize(30);
                                                }
                                        }
                                }
                                return true;
                        }
                });

    public void manageExpand(ExpandableListView parent, int groupPosition)
    {
        Log.d(LOG, "voce clickata = " + groupPosition);
        if(parent.isGroupExpanded(groupPosition))
        {
                parent.collapseGroup(groupPosition);
        }
        else
        {
                parent.expandGroup(groupPosition);
        }
    }