Подтвердить что ты не робот

Что означает пакет в Android?

Я новичок в разработке приложений для Android и не понимаю, что делает пакет для нас.

Может ли кто-нибудь объяснить это мне?

4b9b3361

Ответ 1

Я новичок в разработке приложений для Android и не могу понять, что на самом деле это делает для нас. Может ли кто-нибудь объяснить это мне?

Своими словами вы можете сделать это как MAP, где хранятся примитивные типы данных и объекты как пара key-value

Bundle чаще всего используется для передачи данных через различные Activities. Предоставляет методы putType() и getType() для хранения и извлечения данных из него.

Также Bundle как параметр onCreate() Метод жизненного цикла активности может использоваться, когда вы хотите сохранить данные при изменении ориентации устройства (в этом случае активность уничтожается и создается снова с ненулевым параметром как Bundle).

Подробнее о Bundle по его методам вы можете прочитать reference at developer.android.com, где вы должны начать, а затем сделать некоторые демо-приложения для получения опыта.

Демонстрационные примеры использования:

Передача примитивных типов данных через действия:

Intent i = new Intent(ActivityContext, TargetActivity.class);
Bundle dataMap = new Bundle();
dataMap.putString("key", "value");
dataMap.putInt("key", 1);
i.putExtras(dataMap);
startActivity(i);

Передача Список значений через действия:

Bundle dataMap = new Bundle();
ArrayList<String> s = new ArrayList<String>();
s.add("Hello");
dataMap.putStringArrayList("key", s); // also Integer and CharSequence
i.putExtras(dataMap);
startActivity(i);

Передача сериализованных объектов через действия:

public class Foo implements Serializable {

   private static final long serialVersionUID = 1L;

   private ArrayList<FooObject> foos;

   public Foo(ArrayList<FooObject> foos) {
      this.foos = foos;
   }

   public ArrayList<FooObject> getFoos() {
      return this.foos;
   }        
}


public class FooObject implements Serializable {

   private static final long serialVersionUID = 1L;

   private int id;

   public FooObject(int id) {
      this.id = id;
   }

   public int getId() {
      return id;
   }

   public void setId(int id) {
      this.id = id;
   }
}

Тогда:

Bundle dataMap = new Bundle();
ArrayList<FooObject> foos = new ArrayList<FooObject>();
foos.add(new FooObject(1));
dataMap.putSerializable("key", new Foo(foos));


Пройти Parcelable objects через Activities:

Существует гораздо больше кода, поэтому вот статья, как это сделать:


Как получить данные в целевом режиме:

Существует один магический метод: getIntent(), который возвращает Intent (если есть данные и с расширенными данными), которые начали Activity, откуда вызывается метод.

Итак:

Bundle dataFromIntent = getIntent().getExtras();
if (dataFromIntent != null) {
   String stringValue = dataFromIntent.getString("key");
   int intValue = dataFromIntent.getInt("key");
   Foo fooObject = (Foo) dataFromIntent.getSerializable("key");
   // getSerializble returns Serializable so we need to cast to appropriate object.
   ArrayList<String> stringArray = dataFromIntent.getStringArrayList("key");
}


Использование Bundle в качестве параметра метода onCreate():

Вы сохраняете данные в onSaveInstanceState(), как показано ниже:

@Override
public void onSaveInstanceState(Bundle map) {
   map.putString("key", "value");
   map.putInt("key", 1);
}

И восстановите их в onCreate() (в этом случае Bundle как параметр не равен нулю), как показано ниже:

@Override
public void onCreate(Bundle savedInstanceState) {
   if (savedInstanceState != null) {
      String stringValue = savedInstanceState.getString("key");
      int intValue = savedInstanceState.getString("key");
   }
   ...
}

Примечание. Вы можете восстановить данные также в onRestoreInstanceState(), но это не часто (его вызывается после onStart() и onCreate() вызывается раньше).

Ответ 2

В общем, английский: "Это коллекция вещей или количество материала, связанного или завернутого вместе".

так же в Android "Это набор ключей и его значений, которые используются для хранения в нем каких-то данных".

Ответ 3

Пакет обычно используется для передачи данных между различными компонентами. Класс Bundle, который можно извлечь из намерения с помощью метода getExtras().

Вы также можете добавить данные непосредственно в Bundle через перегруженные методы putExtra() объектов Intent. Экстра - это пары ключ/значение, ключ всегда имеет тип String. В качестве значения вы можете использовать примитивные типы данных.

Получающий компонент может получить доступ к этой информации с помощью методов getAction() и getData() на объекте Intent. Этот объект Intent можно получить с помощью метода getIntent(). А также компонент, который получает намерение, может использовать метод getIntent(). getExtras() для получения дополнительных данных.

MainActivity

Intent intent = new Intent(MainActivity.this,SecondActivity.class);

Bundle bundle = new Bundle();

bundle.putString("Key", myValue);

intent.putExtras(bundle);

startActivity(intent);

SecondActivity

Bundle bundle = getIntent().getExtras();

String myValue= bundle.getString("key");

Ответ 4

Коллекция вещей, или количество материала, связанное или завернутое вместе. это словарь означает... По тому же Bundle представляет собой набор данных. Данные могут быть любого типа i.e String, int, float, boolean и любых сериализуемых данных. Мы можем делиться & сохранить данные одной операции в другую с помощью пакета Bundle.

Ответ 5

Рассматривайте его как совокупность данных, используемых при передаче данных из одного действия в другое.

Документация определяет ее как

"Отображение из значений String в различные Parcelable типы.

Вы можете поместить данные внутри Bundle, а затем передать этот Bundle через несколько действий. Это удобно, потому что вам не нужно передавать отдельные данные. Вы помещаете все данные в Bundle, а затем просто передаете Bundle, а не отправляете данные отдельно.

Ответ 6

Это буквально пучок вещей; информация: вы помещаете туда вещи (строки, целые числа и т.д.), и вы передаете их как один параметр (пакет) при использовании намерения, например.

Затем ваша цель (активность) может получить их снова и прочитать идентификатор, режим, настройку и т.д.

Ответ 7

Отображение значений String в различные типы Parcelable. Нажмите здесь

Пример:

Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.extras.putString(key, value);
mIntent.putExtras(mBundle);

Отправлять значение из одной активности в другую.