Android 如何隐藏和显示一些图像按钮?

Android 如何隐藏和显示一些图像按钮?,android,android-layout,Android,Android Layout,大家好,我是android编程新手,我对xml有很多问题。几个小时前,我问你如何隐藏布局,所有问题都解决了。无论如何,正如我在许多其他问题中看到的那样,我尝试隐藏和显示一些ImageButtons,但不仅ImageButtons不会显示,现在布局也不想显示:/ 这是我的代码: public class Hide_Unhide extends Activity { LinearLayout barrainfo; ImageButton icotelefono; Imag

大家好,我是android编程新手,我对xml有很多问题。几个小时前,我问你如何隐藏布局,所有问题都解决了。无论如何,正如我在许多其他问题中看到的那样,我尝试隐藏和显示一些ImageButtons,但不仅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;
        }
    }
}

谢谢大家。

尝试从您的
线性布局中删除
android:visibility=“gone”
。父项必须可见才能显示其任何子项

您没有中断
案例0
@tyczj ok。。我纠正了,但它无论如何都不起作用。谢谢我编辑了我的问题看看这个链接我怀疑你调用的setVisibility()对象不是实际显示的小部件。出于这个原因,我要求提供膨胀代码:可能您的活动一侧有真实布局,而隐藏活动对其他未实际显示的对象有用。非常感谢@think01!!我将把它作为一个答案发布,以防Pierpaolo可能会标记为已解决,因为我花了时间在上面。
<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>
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);
            }