如何隐藏和显示一些ImageButtons?

时间:2014-10-08 13:57:53

标签: android android-layout

大家好我是Android编程的新手,我在xml方面遇到很多问题。几个小时前我问你如何隐藏布局,所有问题都解决了Link。无论如何,我尝试在许多其他问题中看到隐藏和显示一些ImageButton但不仅仅是ImageButtons没有显示,现在两个布局都没有显示:/

这是我的代码:

public class Hide_Unhide extends Activity {

    LinearLayout barrainfo;

    ImageButton icotelefono;
    ImageButton icoemail;
    ImageButton icofacebook;
    ImageButton icotwitter;
    ImageButton icosito;


    ImageButton prova;

    public Hide_Unhide (View v){
        barrainfo = (LinearLayout)v.findViewById(R.id.links_bar);         //tutta la barra

        icotelefono = (ImageButton) v.findViewById(R.id.telephone_icon); //pulsante chiamata
        icoemail = (ImageButton) v.findViewById(R.id.email_icon);         //pulsante nuova mail
        icofacebook = (ImageButton) v.findViewById(R.id.facebook_icon);  //pulsante facebook
        icotwitter = (ImageButton) v.findViewById(R.id.twitter_icon);     //pulsante twitter
        icosito = (ImageButton) v.findViewById(R.id.sito_icon);       //pulsante sito web

    };

    public void mostra_nascondi(int numero_di_informazioni, int info_number){   //numero di informazioni = 0 (no info) - 1 (si info)
        /*if (numero_di_informazioni <= 0){                                     //info_number = identifica il social o il telefono o l'email
            barrainfo.setVisibility(View.GONE);                                 //se per l'info_number = 3 corrisponde un numero informazioni = 0 
        }else                                                                   //il locale non ha l'email
        {                                                                       //
            barrainfo.setVisibility(View.VISIBLE);                              //  - - - Schema Informazioni - - - - - - - - - -  
                                                                                // - - - - - - - - + - - - - - - - - - - - - - - -
        }*/                                                                     // | 2: telefono   | num_di_informazioni [0-1]   |
                                                                                // | 3: email      | num_di_informazioni [0-1]   |
                                                                                // | 5: facebook   | num_di_informazioni [0-1]   |
                                                                                // | 6: twitter    | num_di_informazioni [0-1]   |
                                                                                // | 7: Google+    | num_di_informazioni [0-1]   |
                                                                                // | 8: Instagram  | num_di_informazioni [0-1]   |
                                                                                //  - - - - - - - - - - - - - - - - - - - - - - -  

        switch (info_number){
        case 0:
            if (numero_di_informazioni <= 0){   
                barrainfo.setVisibility(View.GONE);                                 
            }else                                                                   
            {   
                barrainfo.setVisibility(View.VISIBLE);                                                                                              
            }
            break;

        case 2:     //telefono
            if(numero_di_informazioni <= 0)
            {
                icotelefono.setVisibility(View.GONE);
            }else
            {
                icotelefono.setVisibility(View.VISIBLE);
            }

            break;
        case 3:     //email
            if(numero_di_informazioni <= 0)
            {
                icoemail.setVisibility(View.GONE);
            }else
            {
                icoemail.setVisibility(View.VISIBLE);
            }           
            break;
        case 5:     //facebook
            if(numero_di_informazioni <= 0)
            {
                icofacebook.setVisibility(View.GONE);
            }else
            {
                icofacebook.setVisibility(View.VISIBLE);
            }

            break;
        case 6:     //twitter
            if(numero_di_informazioni <= 0)
            {
                icotwitter.setVisibility(View.GONE);
            }else
            {
                icotwitter.setVisibility(View.VISIBLE);
            }

            break;
        case 7:     //sito
            if(numero_di_informazioni <= 0)
            {
                icosito.setVisibility(View.GONE);
            }else
            {
                icosito.setVisibility(View.VISIBLE);
            }

            break;
        }
    }
}

XML代码段:

<LinearLayout
        android:id="@+id/links_bar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/title_bar"
        android:background="#222222"
        android:orientation="horizontal"
        android:gravity="center_horizontal|center_vertical|fill_horizontal"
        android:visibility="gone">

        <ImageButton
            android:src="@drawable/telephone_icon"
            android:id="@+id/telephone_icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#222222"
            android:visibility="gone"/>


        <ImageButton
            android:src="@drawable/email_icon"
            android:id="@+id/email_icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/telephone_icon"
            android:background="#222222"
            android:visibility="gone"/>

        <ImageButton
            android:src="@drawable/facebook_icon"
            android:id="@+id/facebook_icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/email_icon"
            android:background="#222222"
            android:visibility="gone"/>

        <ImageButton
            android:src="@drawable/twitter_icon"
            android:id="@+id/twitter_icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/facebook_icon"
            android:background="#222222"
            android:visibility="gone"/>

        <ImageButton
            android:src="@drawable/sito_icon"
            android:id="@+id/sito_icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/twitter_icon"
            android:background="#222222"
            android:visibility="gone"/>




    </LinearLayout>

致电&#34; mostra_nascondi()&#34;:

Hide_Unhide metodo = new Hide_Unhide(v);

            int numero_informazioni=0;
            tvnomeditta.setText(Dati_history[indice_riga][nome_luogo]);         //Stampo il nome del posto
            tvindirizzoditta.setText(Dati_history[indice_riga][indirizzo]);     //Stampo il suo indirizzo

            if(Dati_history[indice_riga][telefono].equals("")){         //scompare/appare se c'è il num di telefono
                numero_informazioni=0;
            }else
            {
                tot_informazioni++;
                numero_informazioni++;
                metodo.mostra_nascondi(numero_informazioni,telefono);
            }


            if(Dati_history[indice_riga][descrizione].equals("")){              //Se una descrizione esiste la stampo altrimenti 
                tvdescrizione.setText("Nessuna descrizione");           //scrivo "Nessuna Descrizione"

            }else
            {
                tot_informazioni++;
                numero_informazioni++;
                tvdescrizione.setText(Dati_history[indice_riga][descrizione]);
            }



            if(Dati_history[indice_riga][email].equals("")){        //mostra/scompare icona mail
                numero_informazioni = 0;
            }else
            {
                tot_informazioni++;
                numero_informazioni++;
                metodo.mostra_nascondi(numero_informazioni,email);
            }



            if(Dati_history[indice_riga][facebook].equals("")){     //mostra/scompare icona facebook
                numero_informazioni = 0;
            }else
            {
                tot_informazioni++;
                numero_informazioni++;
                metodo.mostra_nascondi(numero_informazioni,facebook);
            }



            if(Dati_history[indice_riga][twitter].equals("")){      //mostra/scompare icona twitter
                numero_informazioni = 0;
            }else
            {
                tot_informazioni++;
                numero_informazioni++;
                metodo.mostra_nascondi(numero_informazioni,twitter);
            }



            if(Dati_history[indice_riga][sito].equals("")){     //mostra/scompare icona sito web
                numero_informazioni = 0;
            }else
            {
                tot_informazioni++;
                numero_informazioni++;
                metodo.mostra_nascondi(numero_informazioni,sito);
            }

谢谢大家。

1 个答案:

答案 0 :(得分:1)

尝试从android:visibility="gone"中删除LinearLayout。父母必须是可见的才能显示其任何子女