我使用了一个条件,如果语句为真,它将使布局不可见或消失。 我有一个名为“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);
}
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)后面用{}结束条件语句;