6 / 6 / 3
Регистрация: 29.06.2011
Сообщений: 183
|
|
1 | |
Перенос Java-кода на платформу Android02.08.2016, 08:59. Показов 6965. Ответов 28
Метки нет (Все метки)
Всем доброе утро!
Есть неплохой код. Но мне оказалось этого мало и хочу перенести на платформу Android с помощью Android Studio. Подскажите пожалуйста как перенести?
0
|
02.08.2016, 08:59 | |
Ответы с готовыми решениями:
28
Перенос кода из java на Android Перенос кода на 64-битную платформу JAVA перенос на android Перенос кода клиент/сервера на Android |
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
|
|
02.08.2016, 10:01 | 2 |
Прочитать про класс Timer в андроид.
Добавлено через 21 секунду Или CountdownTimer
0
|
145 / 134 / 22
Регистрация: 28.06.2015
Сообщений: 654
|
|
02.08.2016, 11:27 | 3 |
А что вы хотите перенести, таймер, программу? Для таймера у Андроида есть свои методы. Код перенести можно, а интерфейс нужно новый делать.
0
|
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
|||||||||||
02.08.2016, 12:08 | 4 | ||||||||||
Сообщение было отмечено msgusa как решение
Решение
делов на 5 минут
код активити Кликните здесь для просмотра всего текста
разметка активити, activity_main.xml Кликните здесь для просмотра всего текста
1
|
6 / 6 / 3
Регистрация: 29.06.2011
Сообщений: 183
|
|
02.08.2016, 14:31 [ТС] | 5 |
OlegJV, спасибо, почитаю!
Vladimir93, хочу перенести все. Паблито, спасибо большое, но... я совсем не узнаю тот код. Вы реализовали свой код на основе того, что показал, или же все-таки придется все переписывать специально для Андроида? Дело в том, что логика той программы мне полностью понятна, а ваша не совсем. Например, что за аннотации @Override? В тех программах без них обошлось. И потом, ту программу я немножко изменил и добавил свое. Поэтому для первоначального понимания, думаю, мне было бы легче ориентироваться на тот "скелет" кода.
0
|
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
|
|
02.08.2016, 15:01 | 7 |
Код Паблито предельно ясен с точки зрения Андроид-программирования. Если есть желание писать (переносить) программы под Андроид, придется кое-что почитать, автоматом не прокатит. Смысл (повторюсь) понятен полностью - при нажатии кнопки startBtn срабатывает метод onClick, в котором запускается таймер на 10 секунд с интервалами 1 сек (CountDownTimer(10000, 1000)). Каждую секунду (второй параметр в конструкторе CountDownTimer) срабатывает метод onTick(long l), в котором в текстовое поле выводится оставшееся время. По окончании работы таймера срабатывает метод onFinish(). Все. При желании в эти методы можно добавлять что угодно. @Override - переопределение метода родительского класса. Что еще непонятно?
1
|
6 / 6 / 3
Регистрация: 29.06.2011
Сообщений: 183
|
|||||||||||
02.08.2016, 16:43 [ТС] | 8 | ||||||||||
Хотел немножко схалтурить там, где это возможно. Извините за невежество)
Да, еще я не хотел докучать вас вопросами. Ну, раз так... В целом, интуитивно понимаю что делает программка. Получается, что MainActivity - это как бы главный класс, с котором и начинается выполнение программы. Вопрос, можно ли менять это название как-нибудь по другому? (думаю, что нет). Тогда получается, что у каждой другой программы, будет главный класс с одним и тем же названием. Потом я не обнаружил главного метода public static void main. Реализуется ли он как-нибудь? В той программе, есть конструктор:
Потом, я не вижу внутренних классов, реализующих интерфейс ActionListener. Можно ли мне как-нибудь переписать код и поместить в класс MainActivity {}, классы типа class TimerTick implements ActionListener {...} ? И еще один нюанс, связанный с таймером. Можно ли переписать строчку кода Паблито на что-то подобное:
Т.е. вынести обработчик события во внутренний класс, и дальше с ним работать там. Пока все Пожалуйста, ответьте на мои вопросы, хотя бы так: "Да", "Нет", чтобы знал, что это возможно и что я просто неправильно что-то делаю.
0
|
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
|
|
02.08.2016, 17:15 | 9 |
MainActivity это типа окна в Windows. Название можно менять. Активити в программе может быть несколько. Метод onCreate это с натяжкой можно назвать конструктором. new TimerTick это ересь.
0
|
17 / 16 / 3
Регистрация: 20.05.2015
Сообщений: 115
|
|
02.08.2016, 18:59 | 10 |
msgusa, MainActivity это класс наследник Activity. Название менять можно, но при создании такого класса (перемена названия класса в файле или самого файла вызовет ошибку в IDE). public static void main не нужен, в Android есть такая штука как манифест, в ней пишутся строки интент фильтра и при запуске приложения будет запущено то активити, для которого написан этот интент фильтр. Также нужно каждое запускаемое активити прописывать в манифесте, точнее то, что оно может быть запущено (специальные строки). Конструктор можно сделать для любого класса (это тот же java). Все тяжелые операции в андройд обязательно нужно помещать в другой поток.
0
|
145 / 134 / 22
Регистрация: 28.06.2015
Сообщений: 654
|
|
03.08.2016, 09:52 | 11 |
msgusa,
Да все можно. Андроид практически полностью "поддерживает" Java ( синтаксис, методы, классы, конструкторы, интерфейсы), за исключением UI. Андроид имеет свой. Ну и некоторые реализации у Андроида тоже свои. Насчет запуска тоже уже сказали, по сути, вы можете запустить любую активность (даже другого приложения), которую укажете в манифесте(важная часть Андроид разработок, изучите) Добавлено через 6 минут Правила для имен такие же как и Java, имя Активити должно совпадать с именем файла. Переименовали активность, переименуйте файл, и все что связно, с этой активностью
0
|
6 / 6 / 3
Регистрация: 29.06.2011
Сообщений: 183
|
||||||
06.08.2016, 18:33 [ТС] | 12 | |||||
Программа не сработала.
Пишет, что
0
|
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
|
|
06.08.2016, 19:08 | 13 |
Как-то не очень содержательно. Какая программа, в каком месте не сработала?
0
|
6 / 6 / 3
Регистрация: 29.06.2011
Сообщений: 183
|
||||||
06.08.2016, 19:13 [ТС] | 14 | |||||
Извините, я думал это очевидная ошибка.
Ошибку высвечивает здесь:
И еще. Не знаю важно ли. Я создал новый модуль. И просто скопировал код активити и разметку активити. Чтоб хотя б посмотреть. И еще. Рядом с зеленым треугольником запуска приложения есть названия в списке. Так вот, андроид в названии "timerexample" перечеркнут красным крестиком.. Я не знаю, что это может означать.
0
|
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
|
|
06.08.2016, 19:15 | 15 |
А код разметки можно посмотреть? Есть там эти самые R.id.startBtn и R.id.counterTv?
0
|
6 / 6 / 3
Регистрация: 29.06.2011
Сообщений: 183
|
|
06.08.2016, 19:18 [ТС] | 16 |
0
|
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
|
|
06.08.2016, 19:26 | 17 |
Ну я думал своя какая-то разметка... Попробуй Build - Clean Project, Rebuild Project...
Добавлено через 2 минуты Как все создавалось-то? Какой шаблон AS для проекта использовался?
0
|
6 / 6 / 3
Регистрация: 29.06.2011
Сообщений: 183
|
|
06.08.2016, 19:36 [ТС] | 18 |
Создал проект, а в нем несколько (3 модуля). Один работает, другой почему-то нет. А третий - это пример Паблито. Создал модуль. Нашел код активити - удалил/вставил. Нашел код разметки - удалил/вставил. Шаблоны все пустые (Blank).
0
|
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
|
|
06.08.2016, 19:51 | 19 |
При создании проекта AS предлагает варианты - Basic Activity, Empty Activity и так далее. Что было выбрано?
0
|
6 / 6 / 3
Регистрация: 29.06.2011
Сообщений: 183
|
|
06.08.2016, 19:52 [ТС] | 20 |
Empty Activity
После Clean Project, Rebuild Project..., чет все конкретно подвисло. Я психанул и закрыл через диспетчер задач AS) И терь компоненты в ComponentTree приобрели восклицательные знаки. Я вообще не понимаю, что происходит.
0
|
06.08.2016, 19:52 | |
06.08.2016, 19:52 | |
Помогаю со студенческими работами здесь
20
Перенос кода с java на с++ Перенос строки кода с JAVA (biginteger.add(ONE).shiftRight(1) на C# Построение unity проекта под платформу android? Преобразование голоса в текст с цифрами в Unity под платформу Android Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |