我做了一个自定义的底部栏。它有五个图像。选择特定图像时,片段将打开,并且所选图像将变为蓝色。其余的将保持黑色。 所以我现在要做的是
img1,img2,img3,img4,img5
因此,我将点击监听器设置为
@Override
public void onClick(View view) {
try {
switch (view.getId()) {
case R.id.img1:
// Set background image as blue to img1 and set //black for others
break;
case R.id.img2:
// Set background image as blue to img2 and set //black for others including the previous one
break;
case R.id.img3:
break;
case R.id.img4:
break;
case R.id.img5:
break;
}
} catch (Exception e) {
e.printStackTrace();
}
因此,我一次又一次地执行重复步骤。我可以将此代码压缩为较短的代码吗,例如将先前的图像存储在视图中并为当前图像着色?简而言之,压缩此代码的最佳方法是什么?
谢谢:)
答案 0 :(得分:2)
您可以在try
句子之前将所有图像的背景颜色设置为黑色,然后仅将选择的图像的背景设置为蓝色:
@Override
public void onClick(View view) {
//Set black background for all the imags
try {
switch (view.getId()) {
case R.id.img1:
// Set background image as blue to img1 for others
break;