提问者:小点点

Android Studio中基于条件的约束布局不可见


我使用了一个条件,如果语句为真,它将使布局不可见或消失。 我有一个名为“courseLayout”的约束布局,我在Java中调用这个布局,这样做constraintLayout constraintLayout1=findViewById(r.id.courseLayout);然后在if语句中,我使用constraintLayout1.setVisibility(view.invisible);它不起作用,这些行的应用程序崩溃。 有没有其他方法来调用和操作约束布局? 我做错了什么? 这是Java密码。 if语句适用于除此约束布局之外的其他元素。

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

共3个答案

匿名用户

ConstraintLayout constraintLayout1=findViewById(r.id.CourseLayout);

您在oncreate方法外部初始化视图的方式与您在oncreate()内部初始化视图的方式不同

匿名用户

这是正确答案:

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

匿名用户

尝试在onCreate()中使用findViewById

ConstraintLayout constraintLayout1;

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

顺便说一句,您忘了在ConstraintLayout1.setVisibility(view.Invisible)后面用{}结束条件语句;