Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Basic4Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 213, средняя оценка - 4.95
Pro_grammer
Модератор
5936 / 2097 / 401
Регистрация: 24.04.2011
Сообщений: 3,579
Записей в блоге: 10
#1

Basic для платформы Android - Basic4Android - Basic4Android

19.04.2014, 19:43. Просмотров 29063. Ответов 111
Метки нет (Все метки)

Если кто не знает Basic4Android это простой и мощный инструмент разработки приложений для устройств, работающих под управлением операционной системы Android. Язык Basic4Android очень похож на популярный и всеми нами любимый язык Visual Basic. Лично мне показалось, что он больше похож на VB.NET, ООП полноценный.
Basic для платформы Android - Basic4Android
Что можно на нём написать? Да в принципе всё, что и на Java, только быстрее. Игры, GPS навигация, управление звонками, контактами, СМС, FTP, HTTP, виджеты.
Basic для платформы Android - Basic4Android
Огромное кол-во готовых библиотек сильно упрощают программирование, высокоразвитый IDE, отладчик реального времени, возможность отладки как на различных моделях эмуляторов различных устройств ( можно настроить любые параметры устройства) так и на реальном устройстве.
Basic для платформы Android - Basic4Android
Basic для платформы Android - Basic4Android
Если вы знаете Java, то это ещё плюс - можно самому писать любые библиотеки и подключать к своему проекту на Basic4Android.
Basic4Android выдает честный код, реальный .apk файл, без встроенных интерпретаторов, такой, что и на выходе скажем с Eclipse.
Из недостатков можно назвать его платность ($59 USD). Но если вы будете использовать его для написания платных программ, то думаю это смешная цена. А если не будете, то кого волнует, сколько он стоит? Всех волнует, где взять новую версию, а с этим проблем пока нет.
Проблема с общением и поиском единомышленников. Русских сообществ практически нет, форума, где можно задать вопрос на русском языке тоже нет.
Собственно потому я и пытаюсь создать что то подобное в теме. Сам я начал плотное знакомство с этим ЯП примерно неделю назад. Перевел кое что из документации, разобрал несколько примеров, написал свое собственное приложение. Пока всё нравится, и Basic4Android реально торт.
Но торт скучно есть в одиночку. Буду рад, если найдутся заинтересованные люди, готовые поддержать разговор.
22
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2014, 19:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Basic для платформы Android - Basic4Android (Basic4Android):

Литература по Basic4Android для новичков - Basic4Android
Добрый день,не подскажите ссылку на литературу Basic4Android для чайников или что-то подобное,давным давно vb5 увлекался,так простенькие...

Android SDK Manager не отображает платформы 2.3.3 (API 10), 2.3.1 (API 9). Как быть? - Программирование Android
Добрый день! Использую Android Studio под Windows 7. Из-за несовместимости с операционной системой Android SDK Manager не отображает...

Basic-authentication Https SSL Android, loopj library - Программирование Android
Никак не могу пройти аутентификацию в HTTPS с использованием loopj Asnctask Http library. Как можно это реализовать и что еще мне нужно...

Как подключить genymotion к basic4android? - Basic4Android
Подскажите, как подключить эмулятор genymotion к basic4android?

Выбор платформы разработки "1С Мобильная платформа" или "Android Studio" - Программирование Android
Всем, здравствуйте! Есть задача по разработке клиента для терминала сбора данных. Для использования его c WMS. После долгих раздумий было...

Выбор мощного android смартфона до 10 рублей, для тестирования проектов Android Studio, что посоветуете? - Программирование Android
Какую фирму посоветуете?

111
aptos
13 / 13 / 2
Регистрация: 04.06.2013
Сообщений: 156
24.04.2014, 23:52 #16
Цитата Сообщение от Runkin Посмотреть сообщение
Привет! я щас разбираюсь с b4a - вот в eclipse было так
любое слово, надпись создавалась ссылка отдельно и в зависимости от вкл. на устройстве языка
осуществлялся перевод! Вы не видели, есть ли подобное средство в b4a ?
Я не программировал на eclipse, но если вы про всплывающие подсказки на русском для программного кода - там вроде и русского интерфейса нету, не говоря про подсказки.)
Или я не так понял?
0
Runkin
55 / 55 / 3
Регистрация: 22.12.2011
Сообщений: 252
Записей в блоге: 2
25.04.2014, 00:30 #17
нет! в eclipe например создаёшь кнопку и привязываешь к ней ссылку.(например @button1)
Дальше есть разные папки с ссылками на разных языках
наприер:
en @button1=Hello!
ru @button1=Привет!
какая ссылка используется зависит от языка в настройках андроид!
можно было бы сделать переменные где такое прописать, но может это очень объёмно и не удобно!
0
Pro_grammer
Модератор
5936 / 2097 / 401
Регистрация: 24.04.2011
Сообщений: 3,579
Записей в блоге: 10
25.04.2014, 07:13  [ТС] #18
Цитата Сообщение от Runkin Посмотреть сообщение
есть ли подобное средство в b4a ?
Локализация приложений средствами ресурсов. Для каждого языка создается свой локализованный ресурс. Если пользователь запустит приложение на телефоне с английской локалью, то он увидит текст на английском языке. Если приложение запустит русский пользователь, то он увидит текст на русском языке.
Я конкретно до этого не дошёл ещё, но есть пример с локализацией на английский( дефолтный) + немецкий + французский. Для русского я так понял, что надо добавить в папку res/ свою папку values-ru/ со свои файлом strings.xml. И в зависимости от того, какой язык используется в устройстве он автоматически подхватывается. Это считается профессиональным подходом и работает не только для basic4android.
Примечание! файл strings.xml должен иметь атрибут "Только для чтения", иначе он будет удален при компиляции.

Если делать при помощи переменных, то надо будет узнать язык устройства по умолчанию. Есть такой код
Visual Basic
1
2
3
Dim r As Reflector
r.Target = r.RunStaticMethod("java.util.Locale", "getDefault", Null, Null)
ToastMessageShow("Язык = " & r.RunMethod("getLanguage") , False)
Для работы надо подключить библиотеку Reflection
1
Вложения
Тип файла: zip Localization.zip (7.6 Кб, 68 просмотров)
Runkin
55 / 55 / 3
Регистрация: 22.12.2011
Сообщений: 252
Записей в блоге: 2
25.04.2014, 11:19 #19
Да спасибо это то! Только не Reflection, а AndroidResources!

а вы не работали с модулем KeyValueStore ?
0
Pro_grammer
Модератор
5936 / 2097 / 401
Регистрация: 24.04.2011
Сообщений: 3,579
Записей в блоге: 10
25.04.2014, 11:29  [ТС] #20
Цитата Сообщение от Runkin Посмотреть сообщение
Только не Reflection, а AndroidResources!
Reflection это для куска кода, который я привел, а для ресурсов да, нужна AndroidResources, но в примере это есть, потому я и не заострил на этом внимание.
Цитата Сообщение от Runkin Посмотреть сообщение
модулем KeyValueStore
Нет, пока ещё до этого не дошёл. Но пример работы скачал, если надо выложу.
1
Runkin
55 / 55 / 3
Регистрация: 22.12.2011
Сообщений: 252
Записей в блоге: 2
25.04.2014, 19:17 #21
я тоже скачал, но он не рабочий походу!
ты уже разобрался с sql ? примеры по работе на оф форуме читаешь ?

Добавлено через 7 часов 10 минут
я делаю таймер который засекает 1-8 часов
1 час = 3600000 миллисекунд!
создаю таймер с тиком каждые "1000" = 1 сек
и каждую сек вычитаю 1000 мс

преобразую в время, и всё норм работает - но как только я скину апк файл на телефон и запускаю,
у меня в место 1 часа получается 5 часов! От чего такое может быть(в эмуляторе всё чётко!)
0
Pro_grammer
Модератор
5936 / 2097 / 401
Регистрация: 24.04.2011
Сообщений: 3,579
Записей в блоге: 10
25.04.2014, 21:21  [ТС] #22
Цитата Сообщение от Runkin Посмотреть сообщение
От чего такое может быть(в эмуляторе всё чётко!)
А версии Андроида совпадают в эмуле и телефоне?
Да и можно же подключить сразу свой телефон в качестве устройства в режиме тестирования и там уже контролировать как изменяются переменные в отладчике.
0
Runkin
55 / 55 / 3
Регистрация: 22.12.2011
Сообщений: 252
Записей в блоге: 2
25.04.2014, 22:06 #23
Да версии одинаковы API 16
хм, а как тогда сделать - если на разных версиях такие азы различаются
0
Pro_grammer
Модератор
5936 / 2097 / 401
Регистрация: 24.04.2011
Сообщений: 3,579
Записей в блоге: 10
25.04.2014, 22:34  [ТС] #24
Цитата Сообщение от Runkin Посмотреть сообщение
а как тогда сделать - если на разных версиях такие азы различаются
Да нет, это я так. В принципе ни каких различий быть не должно. На то он и таймер, чтобы синхронизировать работу на всех устройствах вне зависимости от быстроты процессора и устройства в целом. Видно где то в коде баг есть. надо искать, смотреть в дебагере. Подключи по мосту свой телефон, выставь значения вывод в Log и смотри, как они изменяются.
0
Runkin
55 / 55 / 3
Регистрация: 22.12.2011
Сообщений: 252
Записей в блоге: 2
26.04.2014, 00:34 #25
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Global > Dim CalcTime as Long
 
sub btn_click
        Timer1.Initialize("Timer1",1000)
        Timer1.Enabled = True
    CalcTime = 0
end sub
 
Sub Timer1_Tick
    CalcTime = CalcTime + 60000
    timelbl1.Text = DateTime.Time(CalcTime)
End Sub
вот должен прибавлять к часам по минуте в секунду! в эмуляторе так и есть - но на телефоне, в 1й тик (3часа 1 мин 0 сек), 2й тик (4 часа, 2мин, 0 сек), 3й тик (4часа, 3 мин, 0 сек) и дальше уже нормально идёт процесс...

за тик + мин

Добавлено через 1 час 22 минуты
ещё вариант протестил:

Visual Basic
1
2
3
4
5
6
7
8
9
Sub btn2_Click
    StopTime = DateTime.now + 3600000 'Добавим часик!
    Timer1.Initialize("Timer1",1000)
    Timer1.Enabled = True
End Sub
 
Sub Timer1_Tick
    Label1.Text = DateTime.Time(StopTime-DateTime.now)
End Sub
тоже самое - в эмуляторе всё чётко! но на телефоне, вместо отсчёта на час, отчёт на 5 часов .. бред
0
Pro_grammer
Модератор
5936 / 2097 / 401
Регистрация: 24.04.2011
Сообщений: 3,579
Записей в блоге: 10
26.04.2014, 07:12  [ТС] #26
Цитата Сообщение от Runkin Посмотреть сообщение
но на телефоне, вместо отсчёта на час, отчёт на 5 часов .. бред
Не бред. Сам сначала не врубился, а потом дошло.
Выполни просто этот код
Visual Basic
1
Msgbox("DateTime 0 =" & DateTime.Time(0),"Test")
По идее олжен быть 0, но у меня получается 4.0.0
Это связано с часовыми зонами. В реальном устройстве идет поправка даты на UTC (GMT)
В каждом устройстве можно найти и потом корректировать так
Visual Basic
1
2
Dim timezone As Long 
timezone = -DateTime.DateParse("01/01/1970")
Код с корректировкой будет выглядеть так
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Sub Process_Globals
        Dim Timer1 As Timer 
End Sub
 
Sub Globals
    
Dim CalcTime As Long = 0
Private timelabel1 As Label
Private Button1 As Button
Dim timezone As Long 
timezone = -DateTime.DateParse("01/01/1970")
End Sub
 
Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("Layout1")
 
End Sub
 
Sub Activity_Resume
 
End Sub
 
Sub Activity_Pause (UserClosed As Boolean)
 
End Sub
 
Sub Timer1_Tick
    CalcTime = CalcTime + 60000
    timelabel1.Text = DateTime.Time( CalcTime - timezone)
End Sub
Sub Button1_Click
        Timer1.Initialize("Timer1",1000)
        Timer1.Enabled = True
    CalcTime = 0
End Sub
2
Runkin
55 / 55 / 3
Регистрация: 22.12.2011
Сообщений: 252
Записей в блоге: 2
26.04.2014, 22:22 #27
да всё связано с часовыми зонами! щас всё шикарно! Спасибо!
а ты приложения какого рода делаешь ? для себя или для продажи ?
0
Pro_grammer
Модератор
5936 / 2097 / 401
Регистрация: 24.04.2011
Сообщений: 3,579
Записей в блоге: 10
27.04.2014, 06:50  [ТС] #28
Цитата Сообщение от Runkin Посмотреть сообщение
для себя или для продажи ?
Я пока только изучаю, вторую неделю как поставил B4A. В общем пока ещё вообще ни чего не написал, в основном разбираю готовые примеры.
1
Runkin
55 / 55 / 3
Регистрация: 22.12.2011
Сообщений: 252
Записей в блоге: 2
27.04.2014, 15:00 #29
беда с этими временными зонами!
Например:
Visual Basic
1
2
3
timezone = -DateTime.DateParse("01/01/1970")
Msgbox(DateTime.Time(0-timezone),"zero") 'Всё логично, получаем 00:00:00
Msgbox(DateTime.Time(0-timezone+3600000),"1h") 'Тут вместо 01:00:00, получаем 2:00:00
Добавлено через 3 минуты
timezone = 10800000
т.е вр. зона = 10800000 / 3600000 = 3 часа! всё норм. но
DateTime.Time(timezone) = "7:00:00"
?

Добавлено через 1 час 28 минут
ну вроде понял! Дело в ном, что часовой пояс по дефолту не +0, а +1

если сделать: timezone = (-DateTime.DateParse("01/01/1970"))+3600000

вроде норм

Добавлено через 2 минуты
или нет) переставил часовой пояс на эмуляторе на +4 москва, всё норм работает. +0 теперь тут на час отстаёт

Добавлено через 34 минуты
Видимо ответ всему
Visual Basic
1
DateTime.TimeZoneOffset
- разница в между +0 и твоим часовым поясом!

Visual Basic
1
DateTime.DateParse("01/01/1970")
- использовать не нужно

я сделал так:
Visual Basic
1
timezone = DateTime.TimeZoneOffset * 3600000
0
Pro_grammer
Модератор
5936 / 2097 / 401
Регистрация: 24.04.2011
Сообщений: 3,579
Записей в блоге: 10
27.04.2014, 18:14  [ТС] #30
Цитата Сообщение от Runkin Посмотреть сообщение
я сделал так:
В принципе можно вообще отказаться от DateTime. Оно конечно проще пользоваться готовым, но все эти заморочки с зонами.
Счетчик можно и самому написать, на VB не раз писали всякие таймеры и секундомеры.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2014, 18:14
Привет! Вот еще темы с ответами:

Посоветуйте книги, самоучители, видео для обучения программирование под мобильные платформы - Программирование Android
Имею навык и опыт программирования по паскалю и делфи, закончил 1 курс института и понял, что ко всему придется идти самому....

Какие горячие клавиши используются для Find Usages в Android Studio для мака - Программирование Android
Как настроить на маке Find usages в scope Projects and libraries в Android studio? В винде я делаю Ctrl Alt Shift F7 а как в маке?

Выбор книги или статей для создания приложений под Android (клиент для сервера) - Программирование Android
С какой книги посоветуете начать изучение (желательно сразу на 4 версии). Важно что бы была глава про то как парсить json с сервера...

Qt для Android - Программирование Android
подскажите можно ли на Qt писать для андройда?если нет,то почему?? ведь это кросплотформенная либа


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Yandex
Объявления
27.04.2014, 18:14
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru