miałem Aktywny że przedłużony AppCompactActivity, aw onCreate
metody I Setted Toolbar
korzystając setSupportActionBar
metodę w zwykły sposób:Jak setSupportActionBar w widoku, który rozciąga LifecycleActivity
public class StepMasterActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_step_master);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);`
}
}
Ale teraz mam komponent ViewModel i aby dzielić dane między fragmentami, które są dziećmi tej aktywności i zarządza cyklami życia, muszę włączyć ten komponent do działania, dlatego też w ten sposób przedłużam LifecycleActivity.
public class StepMasterActivity extends LifecycleActivity {
@Override
public class StepMasterActivity extends LifecycleActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_step_master);
// setToolbar();
SharedViewModel sharedViewModel = ViewModelProviders.of(this).get(SharedViewModel.class);
}
}
Ale zauważyłem, że LifecycleActivity nie ma nic wspólnego z AppCompatActivity ani FragmentActivity robi.
public class LifecycleActivity extends FragmentActivity implements LifecycleRegistryOwner {
private final LifecycleRegistry mRegistry = new LifecycleRegistry(this);
public LifecycleActivity() {
}
public LifecycleRegistry getLifecycle() {
return this.mRegistry;
}
}
Czy robię coś nie tak?
LifecycleRegistry to coś takiego? więc mógłbym stworzyć niestandardowy "LifecycleRegistryOwner" zamiast tworzyć fragmenty rozszerzające LifecycleFragment? (na razie) – alexpfx
@alexpfx: Prawidłowo. Jeszcze raz, cytując [dokumentację] (https://developer.android.com/topic/libraries/architecture/lifecycle.html#implementing-lco): "Każdy niestandardowy fragment lub działanie można przekształcić w LifecycleOwner poprzez implementację zbudowanego -w interfejsie LifecycleRegistryOwner (zamiast rozszerzania LifecycleFragment lub LifecycleActivity). " – CommonsWare
@ superarts.org: Nie widzę, co to ma wspólnego z tym pytaniem, nie mówiąc już o tej odpowiedzi.Zadaj osobne pytanie, gdzie podajesz [mcve] i wyjaśnij bardziej szczegółowo swój problem. – CommonsWare