0
votes

Faire des contraintes invisibles basées sur la condition dans Android Studio

J'utilise une condition que lorsque si la déclaration est vraie, elle rendra la mise en page invisible ou partie. J'ai une mise en page de contrainte nommée "Courselayout" et j'appelle cette mise en page en Java faisant cela ContrainteLayout ContrainteLayout1 = FindViewyID (r.id.courselayout); code> Puis dans la déclaration si, j'utilise contraintlayout1.setVisibilité (vue.Invisible); code> Cela ne fonctionne pas et l'application se bloque pour ces lignes. Y a-t-il une autre façon d'appeler et d'opérer sur une mise en page de contrainte? Qu'est-ce que je fais mal? Voici le code Java. L'instruction IF fonctionne pour d'autres éléments sauf sur cette disposition de contrainte.

     
  ConstraintLayout constraintLayout1 = findViewById(R.id.courseLayout);
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Calendar calendar = Calendar.getInstance();
        String currentDate = DateFormat.getDateInstance(DateFormat.FULL).format(calendar.getTime());

    
        Calendar cal = Calendar.getInstance();
        int day = cal.get(Calendar.DAY_OF_WEEK);

        if(day==Calendar.FRIDAY){
        constraintLayout1.setVisibility(View.INVISIBLE);
}


7 commentaires

pouvez-vous me montrer le code ce que vous avez essayé


S'il vous plaît poster du code et la stacktrace


édité le message et ajouté le code Java. C'est ma première question tbh


Pourriez-vous s'il vous plaît ajouter le journal des crash. et déplacez le contraintlayout contraintLayout1 = webviewide (r.id.courselayout); sous setContentView (r.layout.activity_main);


Le code ne donne aucune erreur. Lorsque j'ouvre l'application, il quitte l'application. ne peux pas trouver le crashlog


Pour trouver le Crashlog, cliquez sur logcat au bas de Android Studio, puis changez verbose vers erreur


Que diriez-vous d'essayer de déplacer la contrainteLayout ContrainteLayoutOnt1 = FindviewByID (r.id.courselayout); Sous SetContentView (r.layout.activity_main);


3 Réponses :


0
votes

contraintlayout contraintlayout1 = wederviewyid (r.id.courselayout);

Votre vision d'initialisation en dehors de la méthode oncreate, ce n'est pas la façon dont vous avez besoin d'initialiser la vue à l'intérieur Oncreate ()


1 commentaires

Ça a marché! Pour déclarer la variable publiquement, c'est ce qui a causé le problème. Merci



0
votes

Ceci est la bonne réponse:

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ConstraintLayout constraintLayout1 = findViewById(R.id.courseLayout);

        Calendar calendar = Calendar.getInstance();
        String currentDate = DateFormat.getDateInstance(DateFormat.FULL).format(calendar.getTime());

        Calendar cal = Calendar.getInstance();
        int day = cal.get(Calendar.DAY_OF_WEEK);

        if(day==Calendar.FRIDAY){
        constraintLayout1.setVisibility(View.INVISIBLE);


1 commentaires

Merci. Corriguez mon erreur



0
votes

Essayez d'utiliser Findvied à l'intérieur onecreate () xxx

BTW, vous avez oublié de fermer la déclaration conditionnelle avec {} après contraintlayout1.setVisibilité (vue.Invisible);


1 commentaires

ça a marché. L'erreur de support s'est produite dans le poteau en réalité, il existe plus de codes dans le code Java d'origine.