2011-06-10 3 views
1

J'ai 4 LinearLayouts dans un RelativeLayout et j'utilise aussi un ImageView. Lorsque ImageView est affiché, je veux désactiver les 4 LinearLayouts et leur contenu. Chaque LinearLayout contient 4 boutons. Ci-dessous est ma fonction pour désactiver et activer ces mises en page. Quelqu'un peut-il m'aider à comprendre pourquoi cela ne fonctionne pas?comment désactiver une mise en page et son contenu par programmation dans android

private void disablelayout(final LinearLayout l1,final LinearLayout l2,final LinearLayout l3,final LinearLayout l4) 
    { 
     l1.setEnabled(false); 
     l2.setEnabled(false); 
     l3.setEnabled(false); 
     l4.setEnabled(false); 

    } 
    private void enablelayout(final LinearLayout l1,final LinearLayout l2,final LinearLayout l3,final LinearLayout l4) 
    { 
     l1.postDelayed(new Runnable(){    
      @Override    
      public void run() {     
       l1.setEnabled(true); 
       l2.setEnabled(true); 
       l3.setEnabled(true); 
       l4.setEnabled(true); 
      }   
      }, 3000); 
    } 
+0

je ne veux pas faire invisible.layouts devrait être l'utilisateur visible.but ne devrait pas être en mesure de cliquer sur les boutons dans layouts e –

Répondre

0

Utilisez setVisibility() pour INVISIBLE ou GONE.

+0

si je mets cela le linearlayouts sera invisible.rt? mais je ne veux pas le rendre invisible –

+1

Je pensais que par désactivé vous vouliez dire pas capable d'être vu. Peut-être que vous cherchez quelque chose comme ça: http://stackoverflow.com/questions/3205384/android-mass-enable-disable-buttons – vipw

0

Utilisez comme ceci:

l1.setVisibility(View.GONE); 
l2.setVisibility(View.GONE); 
l3.setVisibility(View.GONE); 
l4.setVisibility(View.GONE); 
0

Set "Clicable" propriété pour tous les articles à false. La méthode est setClickable (boolean).
Après ça, personne ne pourra le cliquer. vous pouvez également se pencher sur cette question: How to disable an Android button

+0

seulement pour les mises en page ou pour les boutons aussi ????? –

+0

J'ai mis à jour la réponse – woodshy

+0

j'ai essayé ceci ... mais encore je peux cliquer sur des boutons ... j'avais placé cette propriété pour des dispositions ... que syi a demandé u ... est-il nécessaire de mettre dis à tous les cntrls dans d layouts .. c'est vraiment difficile .. –

0
Use can use this for hide the whole layout 

l1.setVisibility(View.GONE); 
l2.setVisibility(View.GONE); 
l3.setVisibility(View.GONE); 
l4.setVisibility(View.GONE); 

whenever you want to display particular layout then you can 

l1.setVisibility(View.VISIBLE); 
2
private void enableDisableView(View view, boolean enabled) { 
    view.setEnabled(enabled); 

    if (view instanceof ViewGroup) { 
     ViewGroup group = (ViewGroup)view; 

     for (int idx = 0 ; idx < group.getChildCount() ; idx++) { 
      enableDisableView(group.getChildAt(idx), enabled); 
     } 
    } 
} 
Questions connexes