Sto sempre usando l'evento onclick()
nella maggior parte dei miei progetti. Ma, ho letto su OnClickListener()
. Qualcuno può dire qual è la differenza tra questi due? E quale è il migliore da usare nell'applicazione Android ?.Differenza tra evento OnClick() e OnClickListener?
risposta
Non sono sicuro che la domanda sia chiara. View.OnClickListener
è un'interfaccia che definisce il metodo onClick(View)
. Se hai una classe che intende ascoltare i clic, devi implementare l'interfaccia (se non lo stai già estendendo), e implementare anche questo metodo. Devi usare entrambi; non sono in qualche modo alternative.
Così triste che c'è un anello di votazione in Android che giù-vota le risposte giuste :( – Reno
OnClickListener
è l'interfaccia che è necessario implementare e può essere impostata su una vista in codice java.
Ultimamente Android ha aggiunto un attributo xml alle viste chiamate android:onclick
, che possono essere utilizzate per gestire i clic direttamente nell'attività della vista senza dover implementare alcuna interfaccia.
Entrambe funzionano allo stesso modo, solo che viene impostato tramite codice java e l'altro tramite codice xml.
OnClickListener è ciò che aspetta che qualcuno in realtà clic, determina onclick cosa succede quando un utente fa clic
l'ascoltatore è una classe, l'onclick è un metodo, questa distinzione non è molto utile nei casi più semplici, ma se si vogliono essere più complicato diventa più necessario
+1 per breve n alla descrizione del punto .. –
Usiamo
public void button_onClick_name(View v)
{
-------
}
di definire un metodo fuori della classe. Ma per definire un componente Fare clic su un evento all'interno di una classe, usiamo il listener di onclick.
Sto assumendo per onClick
che si utilizza è quello che si definisce in XML Layout. Questi due sono alternativi che servono la stessa funzione ma implementati in modo diverso.
La
onClick
con rilegatura in Layout XML funzione è un'associazione tra onClick e la funzione che sarà chiamata. La funzione deve avere un argomento (ilView
) affinché onClick possa funzionare.Un
OnClickListener
è un'interfaccia che qualsiasi classe potrebbe implementare. Dal momento che è un'interfaccia che qualsiasi classe potrebbe implementare, questa ha più flessibilità e più complessità nella sua forma. Poche flessibilità che potreste avere conOnClickListener
- Si potrebbe facilmente scambiare un'implementazione di ascoltatori con un altro se necessario.
- Un
OnClickListener
consente di separare l'azione/il comportamento dell'evento click dalloView
che attiva l'evento. Mentre per casi semplici questo non è un grosso problema, per la gestione complessa degli eventi, questo potrebbe significare migliore leggibilità e manutenibilità del codice - Poiché
OnClickListener
è un'interfaccia, la classe che lo implementa ha flessibilità nel determinare le variabili e i metodi dell'istanza di cui ha bisogno per gestire l'evento. Ancora una volta, questo non è un grosso problema in casi semplici, ma per casi complessi, non vogliamo mescolare le variabili/metodi che si riferiscono alla gestione degli eventi con il codice della Vista che attiva l'evento.
consideriamo "OnClickListener" come un ragazzo che è in attesa l'utente a fare clic sul pulsante della vostra applicazione. Quindi il tuo uomo eseguirà il tuo metodo OnClick().
Devi inserire un ID nel tuo pulsante nel tuo file xml, quindi assegnargli un nome nel tuo file MainActivity.java. Quindi imposta un click listener al tuo ragazzo. E aggiungi il tuo metodo onClick. Ecco perché onClick è legato alla View.OnClickListener interfaccia: https://developer.android.com/reference/android/view/View.OnClickListener.html
Esempio:
Button myButton = (Button)findViewById(R.id.myButton);
myButton.setOnClickListener(new View.OnClickListener(){
@override
public void onClick(View v) {
// your method...
}
}
Ci sono un paio di motivi per cui si potrebbe desiderare di impostare un OnClickListener
di programmazione. La prima è se si desidera modificare il comportamento del pulsante mentre l'app è in esecuzione. Puoi puntare il tuo pulsante su un altro metodo completamente, o semplicemente disabilitare il pulsante impostando uno OnClickListener
che non fa nulla.
Quando si definisce un listener utilizzando l'attributo onClick
, la vista cerca un metodo con quel nome solo nella sua attività host. L'impostazione programmatica di OnClickListener
consente di controllare il comportamento di un pulsante da un luogo diverso dall'attività dell'host. Ciò diventerà molto rilevante per Fragments
, Fragments
, per cui è necessario utilizzare sempre OnClickListeners
per controllare i pulsanti, poiché non sono Attività e non verranno cercati listener definiti in onClick
.
Button button = (Button)findViewById(R.id.buttonId);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Do stuff
}
});
OnClickListener è un'interfaccia e onClick è il metodo di OnClickListener.
È possibile aggiungere l'attributo android:onClick="your_method"
nel codice XML.
Esempio:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click"
android:onClick="your_method"/>
Usiamo OnClick
in XML e OnClickListner
in java
codice. Entrambi sono utilizzati per eseguire una funzione.
Quando vogliamo aggiungere click listener al pulsante nel codice Java, utilizziamo OnClickListener
.
Quando vogliamo aggiungere click listener al pulsante nel file di layout, utilizziamo android:onClick="your_method"
Se si utilizza la variante XML, è necessario implementare your_method
nella classe dell'app.
Ci sono un paio di motivi per cui si consiglia di impostare un OnClickListener al livello di programmazione. La prima è se si desidera modificare il comportamento del pulsante mentre l'app è in esecuzione. Puoi puntare il tuo pulsante su un altro metodo completamente, o semplicemente disabilitare il pulsante impostando un OnClickListener che non fa nulla.
Quando si definisce un listener utilizzando l'attributo onClick, la vista cerca un metodo con quel nome solo nella sua attività host. L'impostazione di un OnClickListener al livello di programmazione consente di controllare il comportamento di un pulsante da un luogo diverso dall'attività dell'host.Questo diventerà molto rilevante quando apprenderemo di Fragments, che sono fondamentalmente mini-attività, che ti permetteranno di creare raccolte riutilizzabili di punti di vista con il loro ciclo di vita, che potrà poi essere assemblato in attività. I frammenti devono sempre utilizzare OnClickListeners per controllare i loro pulsanti, poiché non sono Attività e non verranno cercati gli ascoltatori definiti in onClick.
tutti hanno menzionato il listener OnClickListener
che si è sempre utilizzato. voglio aggiungere un altro punto funziona come metodo e non ha bisogno di essere riferimento, quindi è utile quando devi aggiungere il pulsante dopo aver eseguito qualche attività in modo da non averlo fatto riferimento per OnClickListener
.
Per un example
quando creiamo viewpager solo con il layout (nessun frammento) se si mette un pulsante in qualsiasi layout è insialized solo quando il layout visibile in modo non è possibile utilizzare il metodo findViewById
per Button in quel caso becomed utile appena messo quel metodo in attività !!
Ecco la semplice terminologia Se siete a casa e U volete chiamare qualcuno, potete chiamare direttamente e loro possono ascoltarvi. (usa onclick). Ma se sei fuori e vuoi chiamare qualcuno a casa, devi usare il telefono o Internet (devi usare onclicklistener). In Android tutto parte da casa, io. main_activity Questo è il modo in cui Android facilita il lavoro; quando hai un'attività, non devi allegare un listener, creare un oggetto e definirlo. Basta usare onClick. Onclicklistener sono generalmente utilizzati in Frammenti. Quindi continua a codificare.
- 1. differenza tra onClickListener e onItemClickListener
- 2. Differenza tra OnTouch e OnClick Android
- 3. Differenza tra onclick() e onClientClick()?
- 4. C# Differenza di Winform tra evento DoubleClick e evento MouseDoubleClick
- 5. Differenza tra interrupt ed evento
- 6. Bootstrap onclick evento
- 7. autoLink con evento onClick
- 8. IE8 onclick evento gestore
- 9. React onClick evento
- 10. html div evento onclick
- 11. qual è la differenza tra il <button onclick = ...> e <a href="#" onclick=.../>
- 12. Qual è la differenza tra l'uso di onclick di jQuery e l'attributo onclick?
- 13. Differenza tra Carica evento, Attiva evento e Inserisci evento nel modulo
- 14. Aggiungi evento onclick all'elemento SVG
- 15. Differenza tra i metodi jquery.simulate.js e jQuery evento?
- 16. Non capisco la differenza tra delegati puri e campi evento
- 17. AlertDialog inside onClickListener
- 18. Qual è la differenza tra evento hardware e cache hardware Evento in perf?
- 19. Qual è la differenza tra "evento DOMContent" e "evento di caricamento"
- 20. utilizzando jQuery come mostrare e nascondere evento onClick diverso div
- 21. La classe non è astratta e non sovrascrive il metodo astratto onClick (Visualizza) in OnClickListener
- 22. Evento onclick non attivo su jsfiddle.net
- 23. onClick evento in un ciclo For
- 24. jquery modifica evento onclick di href
- 25. Twitter Bootstrap evento onclick su pulsanti-radio
- 26. Aggiunta dinamica evento onClick utilizzando jQuery
- 27. gestione evento jQuery onClick su manubri
- 28. differenza tra clic e toccare in Android
- 29. JavaScript - onclick evento sempre chiamato automaticamente
- 30. evento onclick javascript su oggetto flash
Hai accettato la risposta sbagliata. Sean Owen o userSeven7s è corretto. – Reno
possibile duplicato di [Come funziona esattamente l'androide: l'attributo onClick XML è diverso da setOnClickListener?] (Http://stackoverflow.com/questions/4153517/how-exact-does-the-androidonclick-xml-attribute-differ-from- setonclicklistener) –