Android 是否有一种更简单的方法来编码以下需求并压缩代码?

Android 是否有一种更简单的方法来编码以下需求并压缩代码?,android,Android,我已经做了一个自定义的底部酒吧。它有五张图片。在选择特定图像时,将打开一个片段,所选图像将变为蓝色。其余的将保持黑色。 所以我现在做的是 img1、img2、img3、img4、img5 所以我将click listener设置为它,并像 @Override public void onClick(View view) { try { switch (view.getId()) { case R.id.im

我已经做了一个自定义的底部酒吧。它有五张图片。在选择特定图像时,将打开一个片段,所选图像将变为蓝色。其余的将保持黑色。 所以我现在做的是

img1、img2、img3、img4、img5

所以我将click listener设置为它,并像

     @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();
        }
所以我一次又一次地重复这些步骤。我是否可以将此代码压缩为更短的内容,例如在视图中存储上一个图像并为当前图像着色??简而言之,压缩此代码的最佳方法是什么


谢谢:)

您可以在
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;

您可以在
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;

我会移除
开关
,并使用ID直接设置蓝色,而不使用
开关
@VladyslavMatviienko。如果只需要单击这五个东西,这将起作用,但这是大型活动操作的一小部分,因此也会有许多其他类型的单击。我正在尝试同样的方法,但有些东西不起作用,我在一个布局中使用了两个图像视图,所以工作不正常,我正在使它可见和不可见。我可能需要设置它programatically@Pritish,然后不要将每个对象的click listener设置为this。设置不同的点击监听器,你不会弄得一团糟。我会移除
开关
,并使用ID直接设置蓝色,而不使用
开关
@VladyslavMatviienko。如果只需要点击这五个东西,这会起作用,但这只是大型活动操作的一小部分,所以会有很多其他类型的点击。我也在尝试同样的方法,但有些东西不起作用,我在一个布局中使用了两个图像视图,因此工作不正常,我正在使其可见和不可见。我可能需要设置它programatically@Pritish,然后不要将每个对象的click listener设置为this。设置不同的点击监听器,你就不会弄得一团糟。