Ответы пользователя по тегу Java
  • Как удалять содержимое edittext?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    myEditText.setText("");
    Ответ написан
    Комментировать
  • Как сделать что бы добавлялась информация в JSON файл а не удалялась старая и записывалась новая?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    У меня есть утилитный метод который записывает информацию в JSON из модели.
    public static void convertModelToJson(Object className, String titleFile) {
            ObjectMapper mapper = new ObjectMapper();
            mapper.enable(SerializationFeature.INDENT_OUTPUT);
            try {
                mapper.writeValue(new File(baseFile + titleFile), className);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


    При каждом вызове этого метода создается новый файл и записывается вместо предыдущего, как можно было ожидать, что оно будет добавлять данные в конец? Ну да ладно, это вопрос риторический.
    Я бы посоветовал заполять JSON в процессе работы, а сохранять его уже когда работа будет закончена.
    Если нужно дополнять файл между сеансами работы с программой - открывайте и парсите его при старте.
    И да, если вам правда нужно будет работать с одним файлом в разных сеансах, то подумайте про БД, как вам посоветовал Денис Загаевский
    Ответ написан
    Комментировать
  • Как найти и напечатать самое большое число из текстового файла?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    нужно запоминать три максимальных стоимости (по планшету, пк и ноутбуку), с соответсвующими строками.
    читаем строку, определяем, у нас строка с планшетом, ноутбуком или пк, сравниваем стоимость в этой строке, со стоимостью ранее считанной (0 - если ранее небыло строк), если наша стоимость больше, запоминаем её, и соответствующую строку, если меньше - просто читаем следующую.
    Когда все строки в файле кончились, сравниваем полученные максимальные итоги ноутбука планшета и пк. Если они все одинаковые - выводим их все, если разные, выводим максимальный.
    Надеюсь достаточно подробно расписал, и теперь вам понятно как это реализовать, можете писать код.
    Ответ написан
    1 комментарий
  • Ошибка on a null object reference в андроид студио, как исправить?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    у вас в onEvent параметр value отмечен как Nullable, т.е. подразумевается, что туда может прилететь null
    Тем не менее, вы смело дергаете value.getDocumentChanges() безо всяких проверок.
    Естественно, в ситуации когда в onEvent таки прилетает null у вас всё падает.
    Ответ написан
    4 комментария
  • Как из переменной парсить текст java?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Можно использовать регулярку, что-нибудь вроде: JSESSIONID=(.*?);
    Можно тупо в лоб, найти вхождение "JSESSIONID=", затем взять подстроку, и в ней найти первое вхождение ";" - подстрока между ними и будет нужной.
    А можно разбить строку на массив, по ";", затем каждый элемент массива разбить на две части, до "=" и после, и сложить в хешмапу, таким образом получим возможность манипулировать данными через ключ- знечение.
    Ответ написан
  • Почему класс хранит 3 объекта?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Речь о том, что Holder2 может сохранить и вернуть объект любого типа, благодаря тому, что все объекты являются наследниками класса Object.
    h2.set("Not an Automobile")
    Сохраняет в холдере строку - объект типа String
    h2.set(1)
    Сохраняет в холдере 1 - которая сохраняется там как Integer
    И да, вы всё правильно понимаете, предыдущие значения мы теряем.
    Фразу
    хранит объекты трех разных типов
    нужно понимать, как "сохраняет" (в приведенном примере в один класс Holder2 сохранялись объекты трех разных типов), но хранился в каждый момент времени только один.
    Из-за таких ошибок перевода и рекомендуют читать книги по программированию на языке оригинала.
    Ответ написан
    Комментировать
  • Что за конструкция?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    public static final Person NULL = new NullPerson();

    Объявление публичного статического поля NULL, типа Person инициализированного объектом типа NullPerson.
    Объект NullPerson, судя по всему является дочерним объектом класса Person, имплементирующим интерфейс Null
    О чем и сказано в тексте.
    Ответ написан
  • Как реализовать проверку четырехугольника на вырожденность в Java?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Чтобы определить, лежат ли четыре точки на одной прямой, нужно проверить, совпадают ли прямые, проведенные через каждую пару точек. Подробности по ссылке:
    mathprofi.ru/zadachi_s_pryamoi_na_ploskosti.html
    Ответ написан
    Комментировать
  • На каком этапе изучения Java стоит переходить на Kotlin Android?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Вы так спрашиваете, будто после перехода на Котлин, все источники информации о Java для вас закроются. Если будет чего-то не хватать, всегда ведь можно вернуться.
    А по существу вопроса: да можно переходите.
    Ответ написан
    2 комментария
  • Как сделать правильное сравнение?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Когда у тебя EditText содержит пустую строку, получается что ты делаешь
    Integer.parseInt("");
    В результате чего получается null
    Поскольку null нельзя присвоить примитивному типу int то при попытке это сделать у тебя возникает NullPointException - для пользователя это выглядит будто программа просто сама закрылась.
    У тебя два выхода:
    1. Отловить этот NullPointException с помощью try catch
    2. Присваивать не примитивному типу int, а объектному Integer, а затем после присвоения проверит, результат на не равенство null
    Не зависимо от способа, либо в catch либо в else переприсваешь значение перемнной на 0, ну или выдешь ошибку, в зависимости от того, чего там требует логика твоей программы.
    Ответ написан
    Комментировать
  • Как использовать неинициализированные переменные в методе кнопки?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Переменные конечно использовать можно. Жаль что вы не указали ошибку, которая у вас возникает.
    Лучше так не пишите:
    first_array = new Integer[Integer.parseInt(textField.getText())][Integer.parseInt(textField2.getText())];.

    И сами путаетесь и другим читать тяжело, и при отладке куча проблем.
    Так пишите:
    int rowSize = Integer.parseInt(textField.getText());
    int columnSize = Integer.parseInt(textField2.getText());
    if (rowSize>0 && columnSize>0) {
        first_array = new Integer[rowSize][columnSize]; 
    }
    Ответ написан
  • Как вызвать private метод в Fragmente Android Studio?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    В методе onCreateView, вместо
    EditText editTextEmail = (EditText) v.findViewById(R.id.email);
            EditText editTextPassword = (EditText) v.findViewById(R.id.password);

    Нужно
    editTextEmail = (EditText) v.findViewById(R.id.email);
            editTextPassword = (EditText) v.findViewById(R.id.password);

    Поясню:
    У вас в пределах класса объявлены переменные private EditText editTextEmail, editTextPassword;
    Затем, в методе onCreateView, вы при присвоении им значений, перед именем переменной пишете EditText Таким образом вы объявляете новые переменные, в пределах видимости метода, а переменные класса остаються неинициализированными, т.е. null.
    Затем, после вызова, в методе userLogin у вас происходит обращение к переменной editTextEmail.getText() но, editTextEmail содержит null и такое обращение вызывает Null Point Exeption что для пользователя выглядит как просто закрытие приложения.
    И не факт, что это единственная ошибка.
    Ответ написан
    Комментировать
  • Ошибка java в Android приложении?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    При чем тут тег JAVAFX, если речь идет об Андроид приложении? Или если не об Андроид, тогда почему Андроид упомянут в заголовке?
    Что касается ответа на вопрос, то его способен дать даже гугл-переводчик, вот что он нам сообщает:
    Ошибка нехватки памяти: Не удалось выделить 83886328 байтов с 25165824 свободными байтами и 46 МБ до OOM, целевой размер 245232608, предел роста 268435456

    Другими словами, вашему приложению понадобилось 83 мегабайта памяти, при этом свободно у вас всего 25 мегабайт.
    Ответ написан
  • Как перемещать увеличенную картинку?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Ну, смотрите, у вас в свойствах картинки
    android:scaleType="centerCrop"
    И размеры "match_parent" - при таком раскладе, там нечего перемещать, всё уже обрезалось и за пределами экрана ничего нет.
    Попробуйте например поместить картинку в ScrollView с включенным горизонтальным и вертикальным скроллом, и установить размеры "wrap_content" у ImageView, а у родительского ScrollView "match_parent".
    Ответ написан
    2 комментария
  • Как реализовать ночную тему в android приложении?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    При этом activity не должна пересоздаваться (важно)
    Хорошо подумайте, так ли это важно, потому что для смены темы без пересоздания активити прийдется писать много кода.
    Подробности по ссылке: https://dimlix.com/switch-theme-android/
    Ответ написан
  • Крашается игра после написания кода для кнопки "назад". Как исправить?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Поскольку код внутри листнера у вас весь в попытке, он крашится не может. Значит крашится само обращение к переменной btn_back через точку. Это может быть если btn_back = null
    Если findViewById возвращает вам null значит вью с id button_back нет в лейауте, с которым вы работаете.
    Ответ написан
    Комментировать
  • По какой книге лучше всего учить джаву для андроида?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Во первых, у Шилда есть книги и по другим версиям, просто возьмите предыдущее издание, и будет вам 8я.
    Во вторых, даже если вы изучите книгу с описанием 9й Java, вы узнаете то, что вам нужно знать, и чуть-чуть того, что не будет работать в 8й версии.
    Ну и в третьих, как вам уже здесь ответили. Котлин сейчас актуальнее, для Андроид-разработки, хотя моё лично мнение, что надо учить оба языка и начинать как раз с Java.
    Ответ написан
    6 комментариев
  • Что не так с кодом Java?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    В классе Main в методе main идет обращение к необьявленной переменной arrayList.
    Далее, кроме грубой синтаксической ошибки, здесь есть логическая. При вычислении периметра, вы просто складываете все координаты первой точки. Это точно не периметр!
    Для определения расстояния между двумя точками, нужно извлечь квадратный корень из суммы квадратов разностей всех координат.
    Ответ написан
    Комментировать
  • Как привести ArrayList к List?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Вам подошло бы что-то вроде:
    List<Lexeme> result=Lexemes.words.stream().map(
    pair -> new Lexeme(pair.getKey(), pair.getValue())
    ).collect(Collectors.toList());

    Если бы у вас type был строкой а не LexemeTypes
    Поскольку что такое LexemeTypes вы в вопросе не указали, остается только догадываться. Например, это Enum
    тогда получится так:
    List<Lexeme> result=Lexemes.words.stream().map(
    pair -> new Lexeme(LexemeTypes.valueOf(pair.getKey()), pair.getValue())
    ).collect(Collectors.toList());

    Но, правильнее будет создать еще один конструктор, который будет принимать строку в качестве type и сам знать, как её превратить в нужный LexemeTypes
    Ответ написан
    Комментировать
  • JAVA Как Получить значение переменной из for?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Вы
    System.out.println(numberS);  // тут значение еще верное
    выводите в цикле, а
    System.out.println(numberS);   // тут уже приходит последнее значение в массиве.
    вообще в другом методе.
    numberS это у вас, судя по всему, атрибут класса, иначе она не была бы вам видна в методе onUpdateReceived
    И чему же вы удивляетесь? У вас в методе send, при каждой итерации цикла меняется значение numberS, следовательно после последней итерации там последнее значение.
    Как решить вашу задачу правильно, к сожалению не могу подсказать, потому что вы не описали задачу, и по коду тоже сложно понять что он должен был делать.
    Ответ написан
    Комментировать