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