2011-12-25 13 views

ответ

8

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

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.

+0

мне нужно перейти к другому классу, но не активность ... может кто-нибудь пожалуйста быть конкретной??? – subrussn90

+0

Вам нужен ваш объект для реализации разумного [Parcelable Example] (http://stackoverflow.com/a/8653518/794291). Как только ваш объект сделает это, вы можете использовать пакет для его переноса. – Rick

2

Пропустите длинное значение, которое представляет дату в Bundle, например long time = new Date(). getTime();

7

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

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

В 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); 
} 
Смежные вопросы