Передать объект TIME через пакет

Как передать экземпляр (объект) TIME с помощью Bundle???

Может быть простой вопрос, но мне нужен точный ответ...

DATE date=new DATE();

person subrussn90    schedule 25.12.2011    source источник


Ответы (3)


Этот код является приблизительным, так как я пишу его по памяти.

Intent mIntent = new Intent(ActivityA.this, ActivityB.class);
mIntent.putLong(KEY, getTimeMilliseconds());
startactivity(mIntent);

Затем в onCreate ActivityB:

Bundle mBundle = getItent().getExtras();
Long time = mBundle.getLong(KEY);

Примечание :

putLong/getLong может применяться к нескольким типам String, int...

Если вы хотите, чтобы он применялся к пользовательскому объекту, вы должны сделать этот объект реализующим Parcelable.

person Rick    schedule 25.12.2011
comment
Мне нужно перейти к другому классу, но не к деятельности... кто-нибудь может быть конкретным??? - person subrussn90; 26.12.2011
comment
Вам нужен ваш объект для реализации Parcelable Example . Как только ваш объект сделает это, вы можете использовать пакет для его передачи. - person Rick; 28.12.2011

Даты сериализуемы, поэтому вы можете использовать get/putSerializable:

MyFragment fragment = new MyFragment();
Bundle bundle = new Bundle();
bundle.putSerializable(MyFragment.DATE_KEY, new Date());
fragment.setArguments(bundle);

In MyFragment:

public void onViewStateRestored(Bundle savedInstanceState) {
    super.onViewStateRestored(savedInstanceState);
    Bundle bundle = savedInstanceState != null ? savedInstanceState : getArguments();
    Date startTime = (Date) bundle.getSerializable(MyFragment.DATE_KEY);
    this.time = startTime;
}

public void onSaveInstanceState(Bundle bundle) {
    super.onSaveInstanceState(bundle);
    bundle.putSerializable(MyFragment.DATE_KEY, this.time);
}
person Christopher Pickslay    schedule 19.05.2014

Передайте длинное значение, которое представляет вашу дату в Bundle, например. долгое время = новая дата().getTime();

person John J Smith    schedule 25.12.2011