Ho tre schede con tre frammenti ciascuna e un'attività principale, e voglio creare il socket per inviare il messaggio sulla rete wifi, quindi dove dovrei scrivere il codice per esso? In quella particolare classe di frammenti o attività principale?Qual è la differenza principale tra frammento e attività? Quale codice può essere scritto in frammento?
risposta
Ovviamente è possibile scrivere qualsiasi codice all'interno del frammento ma è necessario occuparsi di alcune cose. Durante l'accesso a qualsiasi cosa che richiede un contesto o qualcosa che è specifico per un'attività, è necessario ottenere un riferimento alla superattività del frammento, ad es. durante la creazione di un intento all'interno di un'attività che si fare qualcosa di simile:
Intent intent = new Intent(this,SomeActivity.class);
ma all'interno di un frammento si dovrà fare qualcosa di simile:
Intent intent = new Intent(super.getActivity(),SomeActivity.class);
Allo stesso modo, se si accede a qualche cosa dal layout file del frammento. È necessario eseguire le seguenti operazioni:
1) ottenere un riferimento globale al layout principale del frammento all'interno del frammento. ad esempio
private LinearLayout result_view;
2) Implementare il metodo OnCreateView anziché il metodo onCreate.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return result_view;
}
3) Gonfiare il layout frammento come questo all'interno del metodo onCreateView del frammento:
result_view = (LinearLayout) inflater.inflate(
R.layout.image_detail_pager, container, false);
4) ora è possibile accedere a una vista di layout come questo:
layout_a = (LinearLayout) result_view
.findViewById(R.id.some_layout_id);
in realtà voglio creare socket per trasmettere il messaggio via LAN ma ora il pulsante su cui ascolterò l'evento di trasmissione è in uno dei frammenti, quindi posso scrivere il codice del messaggio di trasmissione all'interno di un frammento? – Talib
offcourse puoi scrivere. che cosa è la cattura? –
Funziona come un fascino. –
controllare questo link questo può aiutarti .. [frammenti vs attività] [1] [1]: http://stackoverflow.com/questions/10478233/android-need-some-clarifications-of-fragments-vs-activities-and-visiews –
Un frammento non è completamente stand-alone, necessita un'attività come host. Mentre un'attività può essere istanziata da sola. La vedo come la principale differenza. – LuckyMe
[Questo è un altro link, e risponde alla tua domanda] [1] [1]: http://stackoverflow.com/questions/10477997/difference-between-activity-and-fragmentactivity –