Как получить текущий цвет и отобразить имя в EditText - PullRequest
0 голосов
/ 28 апреля 2018

Мое приложение печатает символы в пользовательском представлении, и я могу установить цвет напечатанных символов с помощью следующих параметров:

public void setColor(){

    curColor++;
    int NUMBEROFCOLORS = 5;
    curColor = curColor % (NUMBEROFCOLORS -1);
    switch(curColor){
        case 0:
            paintTxt.setColor(Color.GREEN);
            break;
        case 1:
            paintTxt.setColor(Color.BLUE);
            break;
        case 2:
            paintTxt.setColor(Color.RED);
            break;
        case 3:
            paintTxt.setColor(Color.YELLOW);
            break;
        case 4:
            paintTxt.setColor(Color.MAGENTA);
            break;
        case 5:
            paintTxt.setColor(Color.WHITE);
            break;

    }


}

А затем используйте его для метода onClick кнопки:

colorChanger.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    myCustomView.setColor(); //this changes the color of chars that are being printed to the custom view
       //  myEditText.setText(myCustomView.getColor()); // This doesnt do anything
                }
            }
    );
}

ниже работает нормально, однако я бы также напечатал текущий цвет в EditText. Скажите, когда установлен белый, напечатайте что-то вроде «Текущий цвет: Белый» и так далее. Я могу использовать что-то вроде:

myEditText.setText(myCustomView.getColor());

Это не работает. Я знаю, что делаю не так, как должно, все еще начинающий.

создание геттера, вызывающего указанный выше код, приводит к сбою приложения:

public int getColor() {
    return curColor;
}

Лог:

E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.esqmo.apps.digitalraineffects, PID: 11373 android.content.res.Resources $ NotFoundException: строковый идентификатор ресурса # 0x1

Пожалуйста, посоветуйте мне понять, как я могу этого достичь.

1 Ответ

0 голосов
/ 28 апреля 2018

Из-за ошибки это выглядело как setText - это String, но getColor возвращает int.

Так что вы должны изменить свой код на

myEditText.setText(myCustomView.getColor()+"");

или к этому

myEditText.setText(Integer.toString(myCustomView.getColor()));

Для печати названия цвета вместо int в editText

String colorName = color(myCustomView.getColor());
myEditText.setText(colorName);


public String color(int colorNum)
{
     String color;
     switch(colorNum) {
        case 0:
            color = Color.GREEN;
            ......
            break;
        case 1:
             .....
            break;
    }
    return color;
}
...