2014-10-08 79 views
1

嗨,大家好我是android編程的新手,我有很多xml問題。幾個小時前我問你如何隱藏一個佈局,並且全部解決了Link。無論如何,我嘗試,我在許多其他問題隱藏和顯示一些ImageButtons但不僅ImageButtons不會出現,現在無論是佈局已經看到了希望展示:/如何隱藏和顯示一些ImageButton?

這是我的代碼:

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> 

電話 「mostra_nascondi()」:

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); 
      } 

謝謝大家。

+3

你沒有休息的情況下0 – tyczj 2014-10-08 14:00:57

+0

@tyczj好..我糾正,但它無法正常工作。謝謝我編輯我的問題 – 2014-10-08 14:04:23

+0

http://stackoverflow.com/questions/3975141/how-to-hide-imagebutton 看看這個鏈接 – user3738027 2014-10-08 14:08:21

回答

1

嘗試從您的LinearLayout中刪除android:visibility="gone"。家長必須是可見的,以顯示其任何孩子