Заменить символ новой строки на клавишу возврата на предыдущую строку - PullRequest
0 голосов
/ 02 июля 2019

В моем приложении есть флажок "Шоколад". Когда это проверено, это печатает "Шоколад добавлен! \ N". Но когда я снимаю галочку после галочки и заменяю ее на "" (без строки), тогда она заменяется новой строкой. И нет. количество строк увеличивается на каждой проверке / снятии отметки. Так что мой вопрос: как заменить всю строку на клавишу возврата? Таким образом, следующий текст должен быть напечатан вместо шоколада на той же строке.

public void onCheck(View checkView) {

    String checkMessage = "";
    boolean checked = ((CheckBox) checkView).isChecked();
    checkMessage += "\n";

    switch (checkView.getId()) {

        case R.id.chocolate:
            if (checked) {
                checkMessage += "Chocolate added.\n";
            } 
            else {
                checkMessage = checkMessage.replaceAll("Chocolate added.\n", "");
            }
            break;
    }
    checkMessage += "\n";
    ...

Ответы [ 2 ]

1 голос
/ 02 июля 2019

Пожалуйста, удалите оба из checkMessage += "\n";. Поскольку это не имеет смысла

0 голосов
/ 02 июля 2019

Ваша проблема здесь в строках, которые имеют: checkMessage + = "\ n"; Это видно из вашего кода, чтобы добавить новую строку в строку checkMessage, независимо от того, установлен ли флажок. Поскольку у вас их две, количество строк будет увеличиваться на 2 при каждой проверке / снятии отметки. Поэтому, если их не использовать, их удаление остановит увеличение линий.

В качестве альтернативы, чтобы ответить на ваш вопрос напрямую, escape-последовательность java для возврата на задний план - \ b, однако я не знаю, решит ли это добавление, решит ли вашу проблему.

...