Topic: Hello Kitty - Создаем первое приложение для Android

Обсуждаем урок Hello Kitty - Создаем первое приложение для Android

2 (edited by EtalonSoft.ru 2015-07-11 18:56:13)

Re: Hello Kitty - Создаем первое приложение для Android

Добрый день.
Вопрос по кодировке файлов:
после запуска приложения вместо русских символов появились вопросительные знаки. Я поменял кодировку файла MainActivity.java на UTF-8 и проблема была решена.
1. Какую кодировку лучше применять для всех файлов? По умолчанию в Студии установлена кодировка Windows-1252 почему то!!!
2. В эмуляторе не получается вводить с клавиатуры русские символы. Как это побороть?

Re: Hello Kitty - Создаем первое приложение для Android

1.Я в статье написал, что кодировка берется из системных настроек операционки. Нужно в студии найти настройку по кодировке и поменять ее на UTF-8. Или вручную менять по мере необходимости.
2.Не помню, по-моему, я не смог решить эту проблему. Но я давно уже не использую эмулятор.

Re: Hello Kitty - Создаем первое приложение для Android

alexander.klimoff wrote:

...Но я давно уже не использую эмулятор.

Рекомендуете сразу на реальном устройстве пробовать? А как на счет дебага?

Re: Hello Kitty - Создаем первое приложение для Android

Одно другому не мешает. Я не призываю отказываться от эмулятора.

Re: Hello Kitty - Создаем первое приложение для Android

Александр, думаю стоит добавить в урок о том, что выбираемое изображение должно быть "определенных" размеров иначе при загрузке приложения будет вылетать OutOfMemory при попытке перекодировать картинку с большим расширением

Re: Hello Kitty - Создаем первое приложение для Android

В примере используется маленькая картинка котика. Но предупредить, наверное, стоит. Я как-то рассчитываю на благоразумие учеников ))

Re: Hello Kitty - Создаем первое приложение для Android

а в целом большое вам спасибо, за сайт и отдельно за то, как преподносите материал.
сам пишу на java и erlang, но уверен, что все выходные проведу копаясь у вас на сайте

9 (edited by storm03 2015-09-10 01:44:37)

Re: Hello Kitty - Создаем первое приложение для Android

Я извиняюсь, но я только изучаю Яву, перехожу с другого языка. Вы используете код
if (mNameEditText.getText().length() == 0) {...
А можно использовать
if (!mNameEditText.getText()) {...
или
if (!mNameEditText) {... ?
Просто последнее выражение как-то привычнее...
upd. Ага, кажется разобрался. Мы объявляем метод private EditText mNameEditText;, который должен содержать аргумент. Значит, правильнее, предпоследнее выражение? Или всё-таки сравнение должно быть полным?
А если бы mNameEditText у нас был бы просто переменной?

Re: Hello Kitty - Создаем первое приложение для Android

Мы же проверяем длину текста. А ваш вариант проверяет доступность самого компонента. А mNameEditText и является переменной.

11 (edited by storm03 2015-09-10 12:29:58)

Re: Hello Kitty - Создаем первое приложение для Android

Значит, и переменные просто так сравнивать нельзя?
Т.е. if(mNameEditText == mFamilyEditText){... будет неверным,
а надо писать if(mNameEditText.getText() == mFamilyEditText.getText()){...?
Просто хочется разобраться. Как, допустим, в JavaScript:
Если мы берем просто переменную а, то мы можем напрямую её сравнивать if(a==5){...,
А если берем некое поле ввода, то у него надо использовать атрибут if(a.value==5){...
Т.е. в JAVA переменные это не сами переменные, а только ссылка на ячейки памяти.
Образно, это не сама квартира, а только её адрес?

Re: Hello Kitty - Создаем первое приложение для Android

Можно, только вы сравниваете объекты. Какой практический смысл в сравнивании двух текстовых полей?

Re: Hello Kitty - Создаем первое приложение для Android

после попытки запуска студия высветила красной лампочкой перед @Override
после нажатия Ремув ( @Override исчезла) и все заработало... Почему??

Re: Hello Kitty - Создаем первое приложение для Android

сорри нашел свою ошибку потом в "вашем коде"))

Re: Hello Kitty - Создаем первое приложение для Android

Александр, спасибо Вам за ваш колоссальный труд.

storm03 wrote:

Я извиняюсь, но я только изучаю Яву, перехожу с другого языка. Вы используете код
if (mNameEditText.getText().length() == 0) {...
А можно использовать
if (!mNameEditText.getText()) {...
или
if (!mNameEditText) {... ?
Просто последнее выражение как-то привычнее...
upd. Ага, кажется разобрался. Мы объявляем метод private EditText mNameEditText;, который должен содержать аргумент. Значит, правильнее, предпоследнее выражение? Или всё-таки сравнение должно быть полным?
А если бы mNameEditText у нас был бы просто переменной?

Форма записи, которую Вы предложили, в Java недопустима. Оператор "if" (в Java) работает только с Boolean выражениями (true и false).

Re: Hello Kitty - Создаем первое приложение для Android

Все настройки как в статье. И версию compile 'com.android.support:appcompat-v7:23.0.1' поставил как в статье.

Но при сборке стандартного проекта куча ошибок. Видимо какая-то несовместимость между версиями апи.
http://i.imgur.com/ntXKbaC.png

Re: Hello Kitty - Создаем первое приложение для Android

А это и логично по сути.  com.android.support:appcompat-v7:23.0.1 юзает какие-то штуки, которых нету в том sdk, которое выбрано по умолчанию v15. При этом со стандартным com.android.support:appcompat-v7:15 работать не хочет пишет что не может его найти или что-то такое.

Что это за жесть господа?

Re: Hello Kitty - Создаем первое приложение для Android

Так. Заработало с такими настройками

Версию appcompat ставим такую.
compile 'com.android.support:appcompat-v7:19.0.1'

И убираем multiDexEnabled true

Тогда всё компилируется нормально.

Re: Hello Kitty - Создаем первое приложение для Android

Версию библиотеки надо ставить всегда последнюю. Если ошибки, то проверьте обновления у себя. Возможно, что-то у вас не обновлено.
Насчет multiDexEnabled - это я просто привел случай, когда у меня не запустился пример и я его завел с помощью этого кода. Но использовать его у себя не нужно.

20 (edited by x8core 2015-10-23 17:12:30)

Re: Hello Kitty - Создаем первое приложение для Android

alexander.klimoff wrote:

Версию библиотеки надо ставить всегда последнюю. Если ошибки, то проверьте обновления у себя. Возможно, что-то у вас не обновлено.

Понял. Так а что в данном случае стоит обновить?

Я просто использую апи версии 15. Там где минимально Android 4.0 вроде нужен. Эта версия api выбрана по умолчанию при создании нового проекта.

В том то и дело что я выбираю всё по умолчанию (как в статье), а потом если ставлю поледнюю версию этого com.android.support:appcompat то при сборке ошибки приходят. Однако при версии com.android.support:appcompat-v7:19.0.1 - работает нормально.

21 (edited by x8core 2015-10-23 17:21:57)

Re: Hello Kitty - Создаем первое приложение для Android

Если используешь последнюю версию com.android.support:appcompat, то надо использовать тогда и последнюю версию платформы http://developer.android.com/intl/ru/gu … ement.html

Правильно?

Re: Hello Kitty - Создаем первое приложение для Android

Нет. Запускаете SDK Manager и ставите последние версии SDK Platform Tools, Build Tools и т.д. Как правило, они имеют такую же версию, как и библиотеки

Re: Hello Kitty - Создаем первое приложение для Android

Александр, приветствую!

Решил чуть чуть поиграть с вашим уроком. Затеял сделать проверку:  если в mNameEditText ввести Bob и нажать на ImageButton в TextView должен отразить иной текст.

Ниже не работающая реализация.  Может подскажете реализацию? Спасибо

public void onClick(View view) {
            if (mNameEditText.getText().length() == 0) {
                mHelloTextView.setText("You need input name to tell kitty hi");
            } else if (mNameEditText.getText().equals(BOB)) {
                mHelloTextView.setText("How do u do Bob?");
            } else {
                mHelloTextView.setText("Hi, " + mNameEditText.getText());
            }
        }

при этом я объявил String BOB = "Bob"

Re: Hello Kitty - Создаем первое приложение для Android

Вполне рабочая реализация. Вам нужно просто разобраться. Если не выводится то, что нужно, то смотрите, а почему выводится именно этот результат.

Re: Hello Kitty - Создаем первое приложение для Android

Добрый день, уперся уже на первом окне.
пишет  -   Your project location contains non-ASCII characters .

как быть ?? что не так??