У меня есть два вида деятельности: MainActivity начинает NewReminderActivity. Первый будет уведомлен о создании нового напоминания. Поэтому он реализует интерфейс OnEventAddedListener.Как передать интерфейс конструктору при создании намерения
Нужно ли использовать сериализацию для добавления MainActivity в намерение или есть лучшее решение? Я никогда не видел примеров, использующих сериализацию, чтобы выполнить это, и я уверен, что очень часто передавать интерфейс из одной активности в другую для общения.
public class MainActivity extends Activity implements OnEventAddedListener {
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
if(item.getItemId() == R.id.action_addReminder)
{
// NewReminderActivity c = new NewReminderActivity(this);
// Intent intent = new Intent(this, c.getClass()); // this won't work
Intent intent = new Intent(this, NewReminderActivity.class);
startActivity(intent);
return true;
} else {
return super.onOptionsItemSelected(item);
}
}
}
Спасибо, что работает для меня. Только для уточнения: я только должен использовать обратные вызовы для Activity <-> Фрагмент связи? – user2246120
Не обязательно, вам доступны другие варианты. Из фрагмента вы можете получить действие (если оно привязано к одному) с помощью 'getActivity()'. Если вы знаете тип, вы можете применить его к ожидаемому типу и вызвать методы на нем. И наоборот, вы должны быть предельно осторожны; обычно вы запрашиваете FragmentManager при попытке найти определенный фрагмент. Независимо от того, что вы делаете, ни в одном из этих случаев не держитесь за ссылки, потому что вы запретите GC очищать эти объекты. –
Я просто ищу хорошую практику кода. В соответствии с этим: [link] (http://developer.android.com/training/basics/fragments/communicating.html) Я должен использовать обратные вызовы для связи. Любые предложения о том, когда использовать (деятельность <-> деятельность, деятельность <-> фрагмент)? – user2246120