Domanda

Ho un'app dove è solo un timer con un sacco di metodi speciali nell'attività principale. Questo funziona benissimo senza problemi. Ora, che ho lavorato, sto cercando di includerlo in un'applicazione molto più complicata in cui sto per inserire il timer in numerosi luoghi via frammenti.

Dovrei includere tutti i miei metodi speciali nell'attività del mio frammento? IE:

public class Timer_fragment extends android.support.v4.app.Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.timer_frag, container, false);
    }
    //SHOULD I insert my special methods here?
}
.

o dovrei includerli nel mio principale?

Sto chiedendo perché ho provato in entrambi i modi, e il modo di attività di frammenti mi ha dato errori a Java, ma mettili nel mio principale mi ha dato errori durante il runtime. Fondamentalmente ho un timer che funziona alla grande come un'applicazione standalone, ma sto cercando di convertirlo in un frammento, in modo che io possa collegarlo a più posti nella mia app.

Esempi di "Metodi speciali": Prendo una vista nel layout e lo aggiorno in base ai nuovi numeri immessi sul timer. Questi metodi richiedono che la vista sia gonfiata prima che possano essere utilizzati.

Nota: gli errori in fase di runtime che sto vivendo sono nullpointeraxceptions.

È stato utile?

Soluzione

L'idea alla base di un frammento è che è una sezione riusurabile (cioè frammento) di un'attività che può essere utilizzata in altre attività, o anche nella stessa attività, ma con l'aggiunta o l'assenza di altri frammenti.

Nell'app per l'app Gmail, l'elenco di tutte le e-mail in Posta in arrivo è un frammento e il contenuto effettivo di un'e-mail è un altro frammento. Su un tablet in modalità orizzontale, entrambi sono mostrati. Un telefono in modalità ritratto, tuttavia, mostrerà solo uno dei due frammenti contemporaneamente.

Pertanto ogni frammento dovrebbe incapsulare tutte le funzionalità e i componenti UI necessari per utilizzare quel frammento. Ciò significa che tutti i tuoi metodi "speciali" come il gonfiaggio della vista del frammento XML dovrebbero accadere all'interno del frammento.

L'attività (o attività) che utilizza il frammento dovrebbe solo utilizzare un frammentmanager (o metodo simile) per aggiungere il frammento al layout dell'attività. L'attività principale di un frammento dovrebbe anche gestire la comunicazione tra frammenti e altri componenti come altre attività, frammenti o fili.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top