Java for android,代码重复

标签 java android

我目前有这段代码,但我需要为红绿蓝重复一遍,有没有办法不用复制和粘贴代码 3 次就可以做到?

    yellow.setOnClickListener(new View.OnClickListener() {    
        public void onClick (View v)   {   

            switch (buttonCount) {
            case 1:  
                empty1.setImageResource(R.drawable.yellow);
                buttonCount++;
                guess1= Colour.YELLOW;
                break;
            case 2:  
                empty2.setImageResource(R.drawable.yellow);
                buttonCount++;
                guess2=Colour.YELLOW;
                break;
            case 3:  
                empty3.setImageResource(R.drawable.yellow);
                buttonCount++;
                guess3=Colour.YELLOW;
                break;
            case 4:  
                empty4.setImageResource(R.drawable.yellow);
                buttonCount++;
                guess4=Colour.YELLOW;
                break;
            case 5:  
                empty5.setImageResource(R.drawable.yellow);
                buttonCount++;
                guess5=Colour.YELLOW;
                break;

            }
        }
    });

最佳答案

您可以通过检查单击了哪个按钮然后从中设置适当的图像来轻松地将其抽象出来,这是一个快速示例(尽管可能无法正常工作,具体取决于您的 ID):

public void onClick (View v)   {   
    int drawable = 0;
    Colour guess = null;
    switch (v.getId())
    {
        case R.id.yellowButton:
            drawable = drawable;
            guess = Colour.YELLOW;
            break;
        case R.id.blueButton:
            drawable = R.drawable.blue;
            guess = Colour.BLUE
            break;
        case R.id.redButton:
            drawable = R.drawable.red;
            guess = Colour.RED
            break;
        case R.id.greenButton:
            drawable = R.drawable.green;
            guess = Colour.GREEN
            break;
    }
    switch (buttonCount) 
    {
    case 1:  
        empty1.setImageResource(drawable);
        buttonCount++;
        guess1= guess;
        break;
    case 2:  
        empty2.setImageResource(drawable);
        buttonCount++;
        guess2=guess;
        break;
    case 3:  
        empty3.setImageResource(drawable);
        buttonCount++;
        guess3=guess;
        break;
    case 4:  
        empty4.setImageResource(drawable);
        buttonCount++;
        guess4=guess;
        break;
    case 5:  
        empty5.setImageResource(drawable);
        buttonCount++;
        guess5=guess;
        break;

    }
}

然后您可以简单地将按钮注册到此 onClick 方法(通过 xml 或以编程方式)

关于Java for android,代码重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20166819/

相关文章:

java - 在 Android Studio 中将 OPUS 转换为 PCM

Java 模式匹配返回所有组子字符串

Android:抽屉导航项目大小

Android:可以在不写入 SD 的情况下将文件附加到电子邮件吗?

android - 如何显示来自 AlertDialog 的 Toast?

java - 在 kafka -.81 中创建/更新带有分区的主题

java - 将值添加到数组中

java - 服务器/客户端Socket编程和mysql数据库

android - 在我传递给另一个 Intent Android 后 Intents 是否被杀死

Android QuickBlox getFile 响应问题