Главная » Разработка для Android » Активность для создания Живого каталога

0

Живой каталог создается  с помощью Намерения, возвращаемого в виде результата работы Активности. Свойство Намерение data содержит путь URI к информации, предоставляемой Источником данных (с применением соот- ветствующей  проекции). Свойства  extra  отвечают за хранение  настроек, таких как режим отображения, значок, имя каталога.

В листинге  10.16 показан переопределенный метод onCreate из Актив- ности, которая будет использована для создания Живого каталога.

Намерение, которое определяет Живой каталог, создается и возвращается в виде результата выполнения Активности, прежде чем она закроется  с по- мощью метода finish.

Листинг 10.16. Активность для создания  Живого  каталога

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); String action = getIntent().getAction();

if (LiveFolders.ACTION_CREATE_LIVE_FOLDER.equals(action)) { Intent intent = new Intent(); intent.setData(EarthquakeProvider.LIVE_FOLDER_URI); intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_BASE_INTENT,

new Intent(Intent.ACTION_VIEW, EarthquakeProvider.CONTENT_URI));

intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_DISPLAY_MODE, LiveFolders.DISPLAY_MODE_LIST);

intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_ICON, Intent.ShortcutIconResource.fromContext(context,

R.drawable.icon)); intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_NAME, "Earthquakes"); setResult(RESULT_OK, createLiveFolderIntent(this));

}

else setResult(RESULT_CANCELED);

finish();

}

Наряду со стандартными значениями настроек вы можете добавить пара- метр LiveFolders.EXTRA_LIVE_FOLDER_BASE_INTENT, чтобы указать базовое Намерение, которое сработает, если Живой каталог выбран из меню.

При выборе элемента Живой каталог вызывает метод showActivity, пере- давая ему Намерение с параметром  data, который  содержит  базовый  путь URI к Живому каталогу и добавленный к нему идентификатор выбранного элемента.

При добавлении  Активности вашего Живого каталога в манифест  прило- жения необходимо также включить  в него Фильтр намерений для действия CREATE_LIVE_FOLDER, как показано в листинге 10.17.

Листинг 10.17. Добавление Фильтра намерений  для Живого  каталога

<activity android:name=".MyLiveFolder " android:label="My Live Folder">

<intent-filter>

<action android:name="android.intent.action.CREATE_LIVE_FOLDER"/>

</intent-filter>

</activity>

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии