2015-04-25 11 views
11

Ho creato AbstractActivity ed un AbstractFormActivity a liberarsi di alcuni codice standard, il loro contenuto può essere irrilevante per la questione, ma mi post lo stesso, forse ho misunterstood qualcosa di così, ci sono:non onCreate chiamati Attività

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(); 
} 

e

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() { 
    } 
} 

finalmente ho creato un'implementazione di quelle attività madre:

public class MercadoriaFormActivity extends AbstractFormActivity<Mercadoria> { 

... 

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

... 

} 

Il mio problema è che il metodo onCreate non viene chiamato.

Qualsiasi aiuto è molto apprezzato.

versione

risposta

37

onCreate() si sta utilizzando viene aggiunto in Android 21. Si consiglia di utilizzare la versione di seguito invece:

protected void onCreate (Bundle savedInstanceState) 
+0

Ora funziona, grazie :) –

+0

ha aiutato molto. Grazie per aver aperto gli occhi :) Ho aggiunto onCreate in modo veloce e non ho notato che ho aggiunto quello dell'API 21. Grazie mille! :) –