Android-点击按钮调用函数时使用If语句



当我更改应用程序的主题时,会调用多个onClickListener。我正在使用图像和颜色来更改我的应用程序的背景,图像和颜色也会根据您选择的主题进行更改。无论何时更改背景图像或颜色,OnCreate中都会调用两个独立的函数,即setLayoutBGColor((和setLayoutBGImage((。问题是,我需要使用一个if语句来检查用户是否点击了其中一种颜色或图像,然后根据它调用函数。我无法添加完整的onCreate函数,因为它超过了单词限制

CreateNote类OnCreate函数:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_create_note);


coordinatorLayout = findViewById(R.id.layoutBGcolor);
layoutCopyNote = findViewById(R.id.copyNote);
bgColorView = findViewById(R.id.bgColorImageView);
theme = Utils.getTheme(this);


if(theme == 1) {
selectedNoteColor = "#333333";
}
else{
selectedNoteColor = "#FFFFFF";
}
selectedColorIndex = 0;
selectedImagePath = "";
selectedNoteBgImage = "";
selectedImageIndex = 0;

initMisc();

//add an if else statement
setLayoutBGColor();
setLayoutBGImage();
}

InitMisc函数,其中提到所有侦听器:

private void initMisc() {
layoutMisc = findViewById(R.id.layoutMisc);
bottomSheetBehavior = BottomSheetBehavior.from(layoutMisc);
layoutMisc.findViewById(R.id.textMisc).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (bottomSheetBehavior.getState() != BottomSheetBehavior.STATE_EXPANDED) {
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
} else {
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
}
});
final ImageView noColor = layoutMisc.findViewById(R.id.no_color_note);
final ImageView imageColor1 = layoutMisc.findViewById(R.id.imageColor1);
final ImageView imageColor2 = layoutMisc.findViewById(R.id.imageColor2);
final ImageView imageColor3 = layoutMisc.findViewById(R.id.imageColor3);
final ImageView imageColor4 = layoutMisc.findViewById(R.id.imageColor4);
final ImageView imageColor5 = layoutMisc.findViewById(R.id.imageColor5);
final ImageView noBgImage = layoutMisc.findViewById(R.id.no_bg_image);
final  ImageView bgImage1 = layoutMisc.findViewById(R.id.bgImage1);
final ImageView bgImage2 = layoutMisc.findViewById(R.id.bgImage2);
final ImageView bgImage3 = layoutMisc.findViewById(R.id.bgImage3);
final ImageView bgImage4 = layoutMisc.findViewById(R.id.bgImage4);
final ImageView bgImage5 = layoutMisc.findViewById(R.id.bgImage5);
theme = Utils.getTheme(this);
switch (theme) {
case 2:
layoutMisc.findViewById(R.id.no_color).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#FFFFFF";
selectedColorIndex = 0;
noColor.setBackgroundColor(R.drawable.bg_done_remove_day);
noColor.setImageResource(R.drawable.ic_done);
imageColor1.setImageResource(0);
imageColor2.setImageResource(0);
imageColor3.setImageResource(0);
imageColor4.setImageResource(0);
imageColor5.setImageResource(0);
coordinatorLayout.setBackgroundColor(getResources().getColor(R.color.DefaultNoteColorDay));
}
});
layoutMisc.findViewById(R.id.color1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#FFFFFF";
selectedColorIndex = 0;
imageColor1.setImageResource(R.drawable.ic_done_create);
imageColor2.setImageResource(0);
imageColor3.setImageResource(0);
imageColor4.setImageResource(0);
imageColor5.setImageResource(0);
setLayoutBGColor();
}
});
layoutMisc.findViewById(R.id.color2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#CCF49E";
selectedColorIndex = 1;
imageColor1.setImageResource(0);
imageColor2.setImageResource(R.drawable.ic_done_create);
imageColor3.setImageResource(0);
imageColor4.setImageResource(0);
imageColor5.setImageResource(0);
setLayoutBGColor();
}
});
layoutMisc.findViewById(R.id.color3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#F8A39D";
selectedColorIndex = 2;
imageColor1.setImageResource(0);
imageColor2.setImageResource(0);
imageColor3.setImageResource(R.drawable.ic_done_create);
imageColor4.setImageResource(0);
imageColor5.setImageResource(0);
setLayoutBGColor();
}
});
layoutMisc.findViewById(R.id.color4).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#93CCC6";
selectedColorIndex = 3;
imageColor1.setImageResource(0);
imageColor2.setImageResource(0);
imageColor3.setImageResource(0);
imageColor4.setImageResource(R.drawable.ic_done_create);
imageColor5.setImageResource(0);
setLayoutBGColor();
}
});
layoutMisc.findViewById(R.id.color5).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#EFD074";
selectedColorIndex = 4;
imageColor1.setImageResource(0);
imageColor2.setImageResource(0);
imageColor3.setImageResource(0);
imageColor4.setImageResource(0);
imageColor5.setImageResource(R.drawable.ic_done_create);
setLayoutBGColor();
}
});
if (availableNote != null && availableNote.getColor() != null && !availableNote.getColor().trim().isEmpty()) {
switch (availableNote.getColor()) {
case "#FFFFFF":
layoutMisc.findViewById(R.id.color1).performClick();
break;
case "#CCF49E":
layoutMisc.findViewById(R.id.color2).performClick();
break;
case "#F8A39D":
layoutMisc.findViewById(R.id.color3).performClick();
break;
case "#93CCC6":
layoutMisc.findViewById(R.id.color4).performClick();
break;
case "#EFD074":
layoutMisc.findViewById(R.id.color5).performClick();
break;
}
}

layoutMisc.findViewById(R.id.no_background).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#FFFFFF";
selectedColorIndex = 0;
noBgImage.setBackgroundColor(R.drawable.bg_done_remove_day);
noBgImage.setImageResource(R.drawable.ic_done);
bgImage1.setImageResource(0);
bgImage2.setImageResource(0);
bgImage3.setImageResource(0);
bgImage4.setImageResource(0);
bgImage5.setImageResource(0);
coordinatorLayout.setBackgroundColor(getResources().getColor(R.color.DefaultNoteColorDay));
}
});
layoutMisc.findViewById(R.id.bgColorImage1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteBgImage = "background_image_1";
selectedImageIndex = 0;
bgImage1.setImageResource(R.drawable.ic_done_create);
bgImage2.setImageResource(0);
bgImage3.setImageResource(0);
bgImage4.setImageResource(0);
bgImage5.setImageResource(0);
setLayoutBGImage();
}
});
layoutMisc.findViewById(R.id.bgColorImage2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteBgImage = "background_image_2";
selectedImageIndex = 1;
bgImage1.setImageResource(0);
bgImage2.setImageResource(R.drawable.ic_done_create);
bgImage3.setImageResource(0);
bgImage4.setImageResource(0);
bgImage5.setImageResource(0);
setLayoutBGImage();
}
});
layoutMisc.findViewById(R.id.bgColorImage3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteBgImage = "background_image_3";
selectedImageIndex = 2;
bgImage1.setImageResource(0);
bgImage2.setImageResource(0);
bgImage3.setImageResource(R.drawable.ic_done_create);
bgImage4.setImageResource(0);
bgImage5.setImageResource(0);
setLayoutBGImage();
}
});
layoutMisc.findViewById(R.id.bgColorImage4).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteBgImage = "background_image_4";
selectedImageIndex = 3;
bgImage1.setImageResource(0);
bgImage2.setImageResource(0);
bgImage3.setImageResource(0);
bgImage4.setImageResource(R.drawable.ic_done_create);
bgImage5.setImageResource(0);
setLayoutBGImage();
}
});
layoutMisc.findViewById(R.id.bgColorImage5).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteBgImage = "background_image_5";
selectedImageIndex = 4;
bgImage1.setImageResource(0);
bgImage2.setImageResource(0);
bgImage3.setImageResource(0);
bgImage4.setImageResource(0);
bgImage5.setImageResource(R.drawable.ic_done_create);
setLayoutBGImage();
}
});
if (availableNote != null && availableNote.getNote_background_image() != null && !availableNote.getNote_background_image().trim().isEmpty()) {
switch (availableNote.getNote_background_image()) {
case "background_image_1":
layoutMisc.findViewById(R.id.bgColorImage1).performClick();
break;
case "background_image_2":
layoutMisc.findViewById(R.id.bgColorImage2).performClick();
break;
case "background_image_3":
layoutMisc.findViewById(R.id.bgColorImage3).performClick();
break;
case "background_image_4":
layoutMisc.findViewById(R.id.bgColorImage4).performClick();
break;
case "background_image_5":
layoutMisc.findViewById(R.id.bgColorImage5).performClick();
break;
}
}
break;
default:
layoutMisc.findViewById(R.id.no_color).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#333333";
selectedColorIndex = 0;
noColor.setBackgroundColor(R.drawable.bg_done_remove);
noColor.setImageResource(R.drawable.ic_done);
imageColor1.setImageResource(0);
imageColor2.setImageResource(0);
imageColor3.setImageResource(0);
imageColor4.setImageResource(0);
imageColor5.setImageResource(0);
coordinatorLayout.setBackgroundColor(getResources().getColor(R.color.DefaultNoteColor));
}
});
layoutMisc.findViewById(R.id.color1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#333333";
selectedColorIndex = 0;
imageColor1.setImageResource(R.drawable.ic_done_create);
imageColor2.setImageResource(0);
imageColor3.setImageResource(0);
imageColor4.setImageResource(0);
imageColor5.setImageResource(0);
setLayoutBGColor();
}
});
layoutMisc.findViewById(R.id.color2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#354A36";
selectedColorIndex = 1;
imageColor1.setImageResource(0);
imageColor2.setImageResource(R.drawable.ic_done_create);
imageColor3.setImageResource(0);
imageColor4.setImageResource(0);
imageColor5.setImageResource(0);
setLayoutBGColor();
}
});
layoutMisc.findViewById(R.id.color3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#3E2C47";
selectedColorIndex = 2;
imageColor1.setImageResource(0);
imageColor2.setImageResource(0);
imageColor3.setImageResource(R.drawable.ic_done_create);
imageColor4.setImageResource(0);
imageColor5.setImageResource(0);
setLayoutBGColor();
}
});
layoutMisc.findViewById(R.id.color4).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#26534F";
selectedColorIndex = 3;
imageColor1.setImageResource(0);
imageColor2.setImageResource(0);
imageColor3.setImageResource(0);
imageColor4.setImageResource(R.drawable.ic_done_create);
imageColor5.setImageResource(0);
setLayoutBGColor();
}
});
layoutMisc.findViewById(R.id.color5).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#000000";
selectedColorIndex = 4;
imageColor1.setImageResource(0);
imageColor2.setImageResource(0);
imageColor3.setImageResource(0);
imageColor4.setImageResource(0);
imageColor5.setImageResource(R.drawable.ic_done_create);
setLayoutBGColor();
}
});
if (availableNote != null && availableNote.getColor() != null && !availableNote.getColor().trim().isEmpty()) {
switch (availableNote.getColor()) {
case "#333333":
layoutMisc.findViewById(R.id.color1).performClick();
break;
case "#354A36":
layoutMisc.findViewById(R.id.color2).performClick();
break;
case "#3E2C47":
layoutMisc.findViewById(R.id.color3).performClick();
break;
case "#26534F":
layoutMisc.findViewById(R.id.color4).performClick();
break;
case "#000000":
layoutMisc.findViewById(R.id.color5).performClick();
break;
}
}
layoutMisc.findViewById(R.id.no_background).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#333333";
selectedColorIndex = 0;
noBgImage.setBackgroundColor(R.drawable.bg_done_remove);
noBgImage.setImageResource(R.drawable.ic_done);
bgImage1.setImageResource(0);
bgImage2.setImageResource(0);
bgImage3.setImageResource(0);
bgImage4.setImageResource(0);
bgImage5.setImageResource(0);
coordinatorLayout.setBackgroundColor(getResources().getColor(R.color.DefaultNoteColor));
}
});
layoutMisc.findViewById(R.id.bgColorImage1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteBgImage = "background_image_1_night";
selectedImageIndex = 0;
bgImage1.setImageResource(R.drawable.ic_done_create);
bgImage2.setImageResource(0);
bgImage3.setImageResource(0);
bgImage4.setImageResource(0);
bgImage5.setImageResource(0);
setLayoutBGImage();
}
});
layoutMisc.findViewById(R.id.bgColorImage2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteBgImage = "background_image_2_night";
selectedImageIndex = 1;
bgImage1.setImageResource(0);
bgImage2.setImageResource(R.drawable.ic_done_create);
bgImage3.setImageResource(0);
bgImage4.setImageResource(0);
bgImage5.setImageResource(0);
setLayoutBGImage();
}
});
layoutMisc.findViewById(R.id.bgColorImage3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteBgImage = "background_image_3_night";
selectedImageIndex = 2;
bgImage1.setImageResource(0);
bgImage2.setImageResource(0);
bgImage3.setImageResource(R.drawable.ic_done_create);
bgImage4.setImageResource(0);
bgImage5.setImageResource(0);
setLayoutBGImage();
}
});
layoutMisc.findViewById(R.id.bgColorImage4).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteBgImage = "background_image_4_night";
selectedImageIndex = 3;
bgImage1.setImageResource(0);
bgImage2.setImageResource(0);
bgImage3.setImageResource(0);
bgImage4.setImageResource(R.drawable.ic_done_create);
bgImage5.setImageResource(0);
setLayoutBGImage();
}
});
layoutMisc.findViewById(R.id.bgColorImage5).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteBgImage = "background_image_5_night";
selectedImageIndex = 4;
bgImage1.setImageResource(0);
bgImage2.setImageResource(0);
bgImage3.setImageResource(0);
bgImage4.setImageResource(0);
bgImage5.setImageResource(R.drawable.ic_done_create);
setLayoutBGImage();
}
});
if (availableNote != null && availableNote.getNote_background_image() != null && !availableNote.getNote_background_image().trim().isEmpty()) {
switch (availableNote.getNote_background_image()) {
case "background_image_1_night":
layoutMisc.findViewById(R.id.bgColorImage1).performClick();
break;
case "background_image_2_night":
layoutMisc.findViewById(R.id.bgColorImage2).performClick();
break;
case "background_image_3_night":
layoutMisc.findViewById(R.id.bgColorImage3).performClick();
break;
case "background_image_4_night":
layoutMisc.findViewById(R.id.bgColorImage4).performClick();
break;
case "background_image_5_night":
layoutMisc.findViewById(R.id.bgColorImage5).performClick();
break;
}
}
break;
}

两个功能:

private void setLayoutBGColor(){
coordinatorLayout.setBackgroundColor(Color.parseColor(getResources().getString(getColorCodeFromColorIndex(selectedColorIndex))));
bgColorView.setBackgroundColor(Color.parseColor(getResources().getString(getColorCodeFromColorIndex(selectedColorIndex))));
}
private void setLayoutBGImage(){
coordinatorLayout.setBackground(getResources().getDrawable(getImageCodeFromImageIndex(selectedImageIndex)));
}

尝试使用以下模式更改代码:

private void setImageResources(int id) {
imageColor1.setImageResource(0);
imageColor2.setImageResource(0);
imageColor3.setImageResource(0);
imageColor4.setImageResource(0);
imageColor5.setImageResource(0);
theme = Utils.getTheme(this);
switch (id) {
default:
case R.id.no_color:
selectedNoteColor = theme==2? "#FFFFFF": "#333333";
selectedColorIndex = 0;
coordinatorLayout.setBackgroundColor(getResources().getColor(R.color.DefaultNoteColorDay));
return;
case R.id.color1:
selectedNoteColor = theme==2? "#FFFFFF": "#333333";
selectedColorIndex = 0;
imageColor1.setImageResource(R.drawable.ic_done_create);
break;
case R.id.color2:
selectedNoteColor = theme==2? "#CCF49E": "#354A36";
selectedColorIndex = 1;
imageColor2.setImageResource(R.drawable.ic_done_create);
break;
case R.id.color3:
selectedNoteColor = theme==2? "#F8A39D": "#3E2C47";
selectedColorIndex = 2;
imageColor3.setImageResource(R.drawable.ic_done_create);
break;
case R.id.color4:
selectedColorIndex = 3;
selectedNoteColor = theme==2? "#93CCC6": "#26534F";
imageColor4.setImageResource(R.drawable.ic_done_create);
break;
case R.id.color5:
selectedColorIndex = 4;
selectedNoteColor = theme==2? "#EFD074": "#000000";
imageColor5.setImageResource(R.drawable.ic_done_create);
break;
}
setLayoutBGColor();
}

并在initMisc:中设置侦听器

View.OnClickListener listener = v-> setImageResource(v.getId());
layoutMisc.findViewById(R.id.no_color).setOnClickListener(listener);
layoutMisc.findViewById(R.id.color1).setOnClickListener(listener);
layoutMisc.findViewById(R.id.color2).setOnClickListener(listener);
layoutMisc.findViewById(R.id.color3).setOnClickListener(listener);
layoutMisc.findViewById(R.id.color4).setOnClickListener(listener);
layoutMisc.findViewById(R.id.color5).setOnClickListener(listener);

最新更新