2016-06-24 2 views
1
Bundle bundle = data.getExtras(); 
Bitmap b = (Bitmap) bundle.get("data"); 
iv.setImageBitmap(b); 
  1. Что bundle.get ("данные"); имею в виду ?Bitmap b = (Bitmap) bundle.get ("data"); путаница, андроид

  2. Если «данные» являются ключом, как мы узнаем, что это ключ, используемый автоматически в намерениях, нет ли другого ключа?

  3. У всех действий есть один и тот же ключ? i.e "data" key

  4. В настоящее время данные всегда отправляются в виде пакета?

ответ

2

1: A Bundle - это разновидность Карты, в которой вы храните значение с указанным ключом. Но, в отличие от Map Bundles, они являются весомыми и только приемлемыми или сериализуемыми значениями, поэтому их можно передавать между процессами, которые очень важны для Android, поскольку каждое приложение работает в собственном процессе (есть некоторые исключения, например приложения, которые используют один и тот же userId но они - меньшинство).

2: Что находится за ключами или какие ключи используются, зависит от компонента, предоставляющего вам комплект. Например, для системных компонентов, таких как MediaStore, обычно существуют контингенты или документация, объясняющая, чего ожидать в комплекте.

3: Нет, см. Выше. Разработчики могут ставить ценности на любые ключи, которые они хотят. Вы только знаете, чего ожидать, если они задокументируют это, или, если возможно, просмотрите код.

4: Не всегда. Вы также можете передать URI и тип mime с намерением. Но для большинства случаев используются Связки. URI мог бы, например, указать поставщику контента, который затем запрашивает с предоставленным URI для фактических данных.

+0

Благодарим за помощь броузеру, столкнувшись с множеством проблем как новичок –

+2

a Bundle' также может хранить примитивные типы данных как байты, короткие, целые и т. Д., Массивы из них и некоторые другие классы, такие как 'Size',' SizeF', 'IBinder' – pskink

+0

Где я могу найти документацию, в которой говорится, что ключ для« ACTION_IMAGE_CAPTURE »- это« данные » –