На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Hsilgos
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Дополнительные формы в приложении Android , Как создавать? + вопрос по литературе по Android
    Всем привет!

    Продолжаю разрабатывать Android-приложение для сдужбы такси. Так как это мое первое Android-приложение, опыт начинаю набирать с нуля, до этого только с Java для PC работал. Сейчас уже надо бы разметить каркас приложения. Одной формой тут не обойтись, всякие настройки и диалоги должны быть выполнены в отдельных формах (называю так по аналогии с формами в Delphi/С++ Builder). Вот сам вопрос: как лучше создавать эти диалоги? Если, конечно, есть альтернативы.

    В книге Алексея Голошапова по программированию для мобильных устройств вычитал, что для создания диалогов используется методов деятельности showDialog(). Соответственно, в переопределяемом методе onCreateDialog() можно загрузить лэйаут диалога из ресурсов, настроить его и вернуть как результат объект этого диалога. Но диалог, который создается в программном примере, лишь частично перекрывает главную форму. А мне бы хотелось, чтобы этот диалог разворачивался на весь экран, мне кажется, так будет как-то удобнее, так как главная форма во время работы диалога будет не нужна (ну перекроется пара вьюх-индикаторов, но это не будет большой потерей). Как это сделать?

    Либо, может есть какой-то другой способ создать и показать форму, чей лэйаут набросан в ресурсах?

    Еще, Дамы и Господа, может, кто-нибудь подскажет хорушую литературку по программированию для Android. Во-первых, книга Головошапова у меня в виде сканированного но нераспознанного текста в pdf, так что крайне неудобно пользоваться, содержания также нет, которое можно было бы отдельно просмотреть, чтобы переходить по его ссылкам. Во-вторых, мне не очень нравится подача материала, очень символические примеры (например, по сравнению с книгой Хорстмана по Java, читать которую у меня составило большое удовольствие).

    Заранее всем спасибо!
      Читани вот это http://developer.alexanderklimov.ru/android/ много интересного, я сам начинающий
        Ну, ресурс вообще-то не очень богатый, я там не нашел особо чего-то большего, чем в книге, которая у меня лежит в электронном виде, хотя, наверно, примеры поинтереснее, не бесплотные. Но вот ответа на мой вопрос по другим окнам в приложении нет. Есть пример диалога кастомного, но он не на весь экран, как бы я хотел.
          Превед!

          Альтернативы такие:
          1) Наследоваться от Dialog
          2) Использовать что то типа AlertDialog:
          ExpandedWrap disabled
            LinearLayout dialogLayout = (LinearLayout) ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.numberpeacker, null);
                    Builder builder = new AlertDialog.Builder(this);
             
                    builder.setView(dialogLayout);
                    builder.setTitle("Hello");
             
                    builder.create().show();

          3) Использовать отдельные активити в качестве диалога, добавив её в манифест и стартуя при помощи StartActivity or StartActivityForResult
          4) Если собираешся поддерживать 3.х и выше на планшетах, или же есть желание использовать пакет совместимости, то можно использовать Fragments

          Добавлено
          Цитата jaroslav.zp.ua @
          Читани вот это http://developer.alexanderklimov.ru/android/ много интересного, я сам начинающий

          Ага, именно если начинающий, то надо начинать читать всякий шлак. Есть только один правильный ресурс, и на нём тоже примеров завались. Более того, все примеры есть в SDK.

          http://developer.android.com/guide/index.html
            Цитата Британский учёный @
            2) Использовать что то типа AlertDialog:

            А смысл использовать AlertDialog, коли ему подпихивать свой ресурс? Уж тогда лучше прямо использовать Dialog.

            Цитата Британский учёный @
            3) Использовать отдельные активити в качестве диалога, добавив её в манифест и стартуя при помощи StartActivity or StartActivityForResult

            Вот пример бы хорошо увидеть.

            Цитата Британский учёный @
            4) Если собираешся поддерживать 3.х и выше на планшетах, или же есть желание использовать пакет совместимости, то можно использовать Fragments

            Ну я сейчас остановиля на платформе 2.1. Повышать до 3 как-то не гут - наверно, много девайсов просто этим срежутся.

            Добавлено
            Цитата Британский учёный @
            3) Использовать отдельные активити в качестве диалога, добавив её в манифест и стартуя при помощи StartActivity or StartActivityForResult


            Гм, при запуске же отдельной деятельности ранее активная деятельность становится на паузу. Что будет при этом, например, с функционированием таймера? Это важно, так как каждые 10 секунд моя прога должна посылать GPS-координаты экипажа такси на сервер.

            Ну хотя я вообще еще не очень сильно представляю жизненный цикл приложения на Android. Точно знаю, что он СОВЕРШЕННО не такой, как скажем, у приложений Windows (например, активность, ушедшая на бэкграунд может быть в какой-то момент запросто выгружена). Надо будет это хорошо прояснить, например, что будет с приложением, если пользователь, скажем, переключится на звонок или захочет отправить кому-то SMS.
              Цитата Homez @
              А смысл использовать AlertDialog, коли ему подпихивать свой ресурс? Уж тогда лучше прямо использовать Dialog.

              Так там можно стандартные кнопочки заюзать, будет иметь вид как системный.
              Цитата Homez @
              Вот пример бы хорошо увидеть.

              Так а что там примерять то?
              1) Создаёшь активити
              2) В первой активити пишешь:
              ExpandedWrap disabled
                Intent intent = new Intent();
                intent.setClass(this, NewActivity.class);
                intent.putExtra(параметры);
                startActivity(intent);


              Цитата Homez @
              Ну я сейчас остановиля на платформе 2.1. Повышать до 3 как-то не гут - наверно, много девайсов просто этим срежутся.

              Есть пакет совместимости http://developer.android.com/sdk/compatibility-library.html

              Добавлено
              Цитата Homez @
              Гм, при запуске же отдельной деятельности ранее активная деятельность становится на паузу. Что будет при этом, например, с функционированием таймера? Это важно, так как каждые 10 секунд моя прога должна посылать GPS-координаты экипажа такси на сервер.

              Опа, уже бага у тебя! Всю такую функциональность надо выносить в сервис или AsyncTask. Иначе словишь ANR.

              Цитата Homez @
              Надо будет это хорошо прояснить, например, что будет с приложением, если пользователь, скажем, переключится на звонок или захочет отправить кому-то SMS.

              OnPause как минимум
                Цитата Британский учёный @
                Гм, при запуске же отдельной деятельности ранее активная деятельность становится на паузу. Что будет при этом, например, с функционированием таймера? Это важно, так как каждые 10 секунд моя прога должна посылать GPS-координаты экипажа такси на сервер.

                Опа, уже бага у тебя! Всю такую функциональность надо выносить в сервис или AsyncTask. Иначе словишь ANR.


                Ага... Но пока у меня ближайшая цель - набросать каркас приложения. В конечном продукте, конечно, таких багов быть не должно.

                А что такое ANR?

                Добавлено
                Цитата Британский учёный @
                Так а что там примерять то?
                1) Создаёшь активити
                2) В первой активити пишешь:

                Intent intent = new Intent();
                intent.setClass(this, NewActivity.class);
                intent.putExtra(параметры);
                startActivity(intent);


                Ну это я уже видел. Но между двумя деятельностями же может быть большое пересечение по данным - в моей программе. Вот потому и хотелось бы увидеть живой полноценный пример, где бы такое было, а не упрощенный, как скажем, просто открытие почтовой программы для отправки сообщения по определенному адресу.
                  Лучше делать всё на отдельных активностях + фоновые процессы (под GPS и так далее).
                  Но тут надо активити рассматривать как отдельные приложения (так проще понять), а инфу между ними гонять в намерениях или передавать через локальную БД. В общем, сначала накидай прототип/ТЗ на функционал приложения, покажи сюда, а только потом лезь разрабатывать.
                    Чем это лучше диалогов?
                      Точно ничем не хуже:

                      + разворачивается в полный экран
                      + стек активностей (кнопка назад работает)
                      + весь интерфейс описывается в XML
                      +++ можно распараллелить разработку приложения между разработчиками
                        Цитата RaD @
                        + весь интерфейс описывается в XML

                        Ну и диалог можно описать в XML.

                        Цитата RaD @
                        + стек активностей (кнопка назад работает)

                        А вот этого как бы и не надо, хотелось бы, чтобы все дополнительные формы были модальные.

                        Добавлено
                        То есть хотелось бы, скажем, из диалога настроек возвращаться на главную форму только по нажатии кнопки OK или Отмена.
                          Цитата Homez @
                          А что такое ANR?

                          http://developer.android.com/guide/practic...onsiveness.html

                          Цитата Homez @
                          Но между двумя деятельностями же может быть большое пересечение по данным - в моей программе.

                          Та сколько угодно. Просто передаёшь параметры через интент, а потом в новой активити перед выходом делаешь setResult()
                            А, ясно, посмотрел, что из деятельности можно вернуть такой же интент. Хорошо, а как сделать, чтобы дополнительная деятельность была именно модальной, то есть, нельзя бы было из нее вернуться в основную каким-нибудь другим способом, кроме как нажав кнопку вроде OK или Отмена?
                              Можно обрабатывать кнопку "Back", на я бы за такое убивал.
                                И что, иначе никак?
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0412 ]   [ 15 queries used ]   [ Generated: 29.02.24, 05:38 GMT ]