Android: как вы используете ListView для запуска Activity? - PullRequest
0 голосов
/ 01 ноября 2010

Я пишу свое первое приложение для Android, и я борюсь с этим уже более недели. Кажется, это основа всех приложений для Android, но я не могу понять, как это сделать. Например, если вы находитесь в меню настроек Android, у вас есть список, и вы нажимаете «О программе», он переводит вас в «О программе» и т. Д.

Мне тоже нужно мое приложение, у меня есть 5 пунктов меню, которые я хочу выбрать и перейти к Упражнению для выбранного элемента.

В настоящее время у меня есть свои элементы в массиве string_array, но у меня нет ничего, что соответствовало бы имени строки и имени действия, к которому я хочу перейти.

Может кто-нибудь дать мне несколько советов? Я действительно изо всех сил здесь, вроде как завален документацией. Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 01 ноября 2010

Вы должны начать с чтения Руководства разработчика

Особый раздел, на который следует обратить внимание, это Основы применения и Intents

Активация компонентов: намерения

Поставщики контента активируются, когда на них направлен запрос от ContentResolver.Три других компонента - действия, услуги и широковещательные приемники - активируются асинхронными сообщениями, называемыми намерениями.Намерение - это объект Intent, который содержит содержимое сообщения.Для действий и сервисов, он называет запрашиваемое действие и указывает, среди прочего, URI данных, на которые нужно воздействовать.Например, он может передать запрос на действие, чтобы представить изображение пользователю или позволить пользователю редактировать некоторый текст.Для широковещательных приемников объект Intent называет объявляемое действие.Например, он может сообщить заинтересованным сторонам, что была нажата кнопка камеры.

Существуют отдельные методы для активации каждого типа компонента:

  • Операция запущена(или что-то новое сделать), передав объект Intent в Context.startActivity () или Activity.startActivityForResult ().Отвечающее действие может посмотреть на начальное намерение, которое вызвало его, вызвав его метод getIntent ().Android вызывает метод onNewIntent () действия, чтобы передать ему любые последующие намерения.

    Одна операция часто начинает следующую.Если он ожидает результата назад от запускаемого действия, он вызывает startActivityForResult () вместо startActivity ().Например, если он запускает действие, позволяющее пользователю выбрать фотографию, он может ожидать, что будет возвращена выбранная фотография.Результат возвращается в объекте Intent, который передается в метод onActivityResult () вызывающего действия.

  • Служба запускается (или новые инструкции предоставляются текущей службе) путем передачи IntentОбъект для Context.startService ().Android вызывает метод onStart () службы и передает его объект Intent.

    Аналогично, намерение может быть передано в Context.bindService () для установления постоянного соединения между вызывающим компонентом и целевой службой.Служба получает объект Intent в вызове onBind ().(Если служба еще не запущена, bindService () может при желании запустить ее.) Например, действие может установить соединение со службой воспроизведения музыки, упомянутой ранее, чтобы она могла предоставить пользователю средства (пользовательский интерфейс) дляуправление воспроизведением.Операция вызовет bindService (), чтобы установить это соединение, а затем вызовет методы, определенные службой, чтобы повлиять на воспроизведение.

    В следующем разделе, «Удаленные вызовы процедур», содержится более подробная информация о привязке к службе.

  • Приложение может инициировать широковещательную передачу, передав объект Intent таким методам, как Context.sendBroadcast (), Context.sendOrderedBroadcast () и Context.sendStickyBroadcast () в любом из их вариантов.Android доставляет намерение всем заинтересованным получателям вещания, вызывая их методы onReceive ().

Подробнее о сообщениях о намерениях см. Отдельную статью «Фильтры содержания и намерения».

1 голос
/ 01 ноября 2010

Проверьте, как это делается здесь, в приложении Настройки . Они используют PreferenceActivity и встраивают Intent в файл XML.

        <com.android.settings.IconPreferenceScreen
         android:title="@string/radio_controls_title"
         settings:icon="@drawable/ic_settings_wireless">
         <intent
            android:action="android.intent.action.MAIN"
            android:targetPackage="com.android.settings"
            android:targetClass="com.android.settings.WirelessSettings" />
        </com.android.settings.IconPreferenceScreen>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...