2015-04-25 20 views
11

Utworzyłem AbstractActivity i AbstractFormActivity pozbyć jakiegoś standardowy kod, ich zawartość może być bez znaczenia dla kwestii, ale będę pisać go tak, może ja misunterstood coś tak, że są one:nie onCreate wezwał Aktywny

public abstract class AbstractActivity extends ActionBarActivity { 

    protected ObjectGraph graph; 

    @Inject 
    public Bus bus; 

    @Inject 
    public App app; 

    @Override 
    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) { 
     super.onCreate(savedInstanceState, persistentState); 
     setContentView(getLayout()); 
     setupInjection(); 
    } 

    public void setupInjection() { 
     graph = ((App) getApplication()).createScopedGraph(getModule()); 
     graph.inject(this); 
     bus.register(this); 
     ButterKnife.inject(this); 
    } 

    protected abstract Object getModule(); 
    protected abstract int getLayout(); 
} 

i

public abstract class AbstractFormActivity<T extends EntidadeBase> extends AbstractActivity implements Form<T> { 

    protected T entity; 
    protected Map<View, Boolean> formValidations; 
    protected AbstractFormActivity() { 
     formValidations = new HashMap<View, Boolean>(); 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) { 
     super.onCreate(savedInstanceState, persistentState); 
    } 

    protected boolean passedValidations() { 
     for (View key : formValidations.keySet()) { 
      if (!formValidations.get(key)) { 
       return false; 
      } 
     } 
     return true; 
    } 

    protected void validateAndSolidify() { 
     if (passedValidations()) { 
      solidify(); 
     } 
     entity = null; 
    } 

    @Override 
    public void validateMoreComplexFields() { 
    } 
} 

wreszcie Utworzyłem implementacji tych działań matka:

public class MercadoriaFormActivity extends AbstractFormActivity<Mercadoria> { 

... 

    @Override 
    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) { 
     super.onCreate(savedInstanceState, persistentState); 
    } 

... 

} 

Mój problem polega na tym, że metoda onCreate nie jest wywoływana.

Każda pomoc jest bardzo ceniona.

Odpowiedz

37

onCreate() wersja używasz dodaje się w Androidzie 21. Należy użyć wersji poniżej zamiast:

protected void onCreate (Bundle savedInstanceState) 
+0

Teraz działa, dzięki :) –

+0

Pomógł. Dziękuję za otwarcie oczu :) Dodałem naCreate w szybki sposób i nie zauważyłem, że dodałem ten z API 21. Wielkie dzięki! :) –

Powiązane problemy