Ошибка: не удается найти метод символа setAlpha (float). setAlpha () не работает на массиве со смещением - PullRequest
0 голосов
/ 15 февраля 2020

Я хочу применить функцию setAlpha () к 4 кнопкам в зависимости от события нажатия. Ниже мой код. Я подготовил массив из 4 со всеми идентификаторами в нем. Но setAlpha () выбрасывает ошибки. Любые предложения?

ошибка: не удается найти метод символа setAlpha (float)

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button yellowBtn;
    private Button greenBtn;
    private Button redBtn;
    private Button blueBtn;
    private Button startBtn;
    String[] tileColor = new String[4];


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        yellowBtn = findViewById(R.id.yellowBtn);
        greenBtn = findViewById(R.id.greenBtn);
        blueBtn = findViewById(R.id.blueBtn);
        redBtn = findViewById(R.id.redBtn);
        startBtn = findViewById(R.id.startBtn);

        tileColor[0] = "yellowBtn";
        tileColor[1] = "greenBtn";
        tileColor[2] = "blueBtn";
        tileColor[3] = "redBtn";


        startBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startBtn.setEnabled(false);
                randomTile();
            }
        });
        yellowBtn.setOnClickListener(this);
        greenBtn.setOnClickListener(this);
        blueBtn.setOnClickListener(this);
        redBtn.setOnClickListener(this);
    }

    public void randomTile(){
        final int random = new Random().nextInt(4);
        AlphaAnimation animationG = new AlphaAnimation(0.2f, 1.0f);
        animationG.setDuration(500);
        tileColor[random].setAlpha(1f);
        tileColor[random].startAnimation(animationG);
    }

    @Override
    public void onClick(View v) {
        switch(v.getId()){
            case R.id.yellowBtn:
                AlphaAnimation animation1 = new AlphaAnimation(0.2f, 1.0f);
                animation1.setDuration(500);
                yellowBtn.setAlpha(1f);
                yellowBtn.startAnimation(animation1);
                break;
            case R.id.blueBtn:
                AlphaAnimation animation2 = new AlphaAnimation(0.2f, 1.0f);
                animation2.setDuration(500);
                blueBtn.setAlpha(1f);
                blueBtn.startAnimation(animation2);
                break;
            case R.id.greenBtn:
                AlphaAnimation animation3 = new AlphaAnimation(0.2f, 1.0f);
                animation3.setDuration(500);
                greenBtn.setAlpha(1f);
                greenBtn.startAnimation(animation3);
                break;
            case R.id.redBtn:
                AlphaAnimation animation4 = new AlphaAnimation(0.2f, 1.0f);
                animation4.setDuration(500);
                redBtn.setAlpha(1f);
                redBtn.startAnimation(animation4);
                break;
        }

    }

}

Я хочу применить функцию setAlpha () к 4 кнопкам на основе события нажатия. Ниже мой код. Я подготовил массив из 4 со всеми идентификаторами в нем. Но setAlpha () выбрасывает ошибки. Любые предложения?

ошибка: не удается найти метод символа setAlpha (float)

Android: ошибка: не удается найти метод символа setAlpha (float). setAlpha () не работает с массивом со смещением.

1 Ответ

0 голосов
/ 15 февраля 2020

, потому что вы должны вызывать setAlpha(1f) и startAnimation(animationG) для объекта просмотра в функции randomTile. Теперь вы вызываете эти функции для объекта String.

...