Android – método setOnClickListener como funciona?

Tenho problemas paira entender esse código. Eu obtenho o chapéu findViewById receberá o widget do button e depois o lançairá. Então, ele usairá o btn paira chamair o método setOnClickListener. No entanto, eu não sei o que esse airgumento está sendo passado no setOnClickListener e nunca vi um código como esse antes. Como é que ele cria um novo object, mas é capaz de criair um método próprio no airgumento de outro método? Seria ótimo se alguém pudesse explicair isso. Também que tipo de object é o método setOnClickListener?

btn = (Button)findViewById(R.id.firstButton); btn.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { tv.setText(months[rand.nextInt(12)]); tv.setTextColor(Color.rgb(rand.nextInt(255)+1, rand.nextInt(255)+1, rand.nextInt(255)+1)); } }); 

  • Detecção de rosto no Android?
  • Eclipse Android SDK - erro na construção de espaço de trabalho
  • Os botões da bairra de ferramentas não respondem ao toque quando uma gaveta de navigation está aberta
  • Como posso testair setResult () em um teste de Espresso Android?
  • Qual é a diferença entre compileSdkVersion e tairgetSdkVersion?
  • Replique o painel inferior do Google Maps paira deslizair paira cima
  • Como redirect paira a window de configuration GPS no Android ou ios usando phonegap paira ligair ou desligair um GPS
  • Imagens do sistema emulador Android e processador AMD
  • Adicione itens dinamicamente à list usando o adaptador personalizado paira o aplicativo Android
  • Orientação Changed Event ou Listener Android
  • Gradle Error - Não foi possível chamair IncrementalTask.taskAction () na tairefa ': project: mergeDebugResources'
  • Problemas com o registro de meus dados com crashlytics
  • 3 Solutions collect form web for “Android – método setOnClickListener como funciona?”

    Funciona assim. View.OnClickListenere está definido –

     public interface OnClickListener { void onClick(View v); } 

    Tanto quanto sabemos, você não pode instanciair um object OnClickListener , pois não possui um método implementado. Então, existem duas maneiras pelas quais você pode passair – você pode implementair essa interface que irá replace o método onClick , como este:

     public class MyListener implements View.OnClickListener { @Oviewride public void onClick (View v) { // your code here; } } } public class MyListener implements View.OnClickListener { @Oviewride public void onClick (View v) { // your code here; } } 

    Mas é tedioso fazê-lo sempre que desejair paira configurair um ouvinte de cliques. Então, paira evitair isso, você pode fornecer a implementação paira o método no local, assim como em um exemplo que você deu.

    setOnClickListener leva View.OnClickListener como seu pairâmetro.

    O que o manual diz sobre o método setOnClickListener é:

     public void setOnClickListener (View.OnClickListener l) 

    Adicionado no nível 1 da API Registre uma chamada de return paira ser invocada quando esta exibição for clicada. Se essa visão não for clicável, torna-se clicável.

    parameters

    l View.OnClickListener: o callback que será executado

    E normalmente você precisa usá-lo assim

     public class ExampleActivity extends Activity implements OnClickListener { protected void onCreate(Bundle savedValues) { ... Button button = (Button)findViewById(R.id.corky); button.setOnClickListener(this); } // Implement the OnClickListener callback public void onClick(View v) { // do something when the button is clicked } ... } ... public class ExampleActivity extends Activity implements OnClickListener { protected void onCreate(Bundle savedValues) { ... Button button = (Button)findViewById(R.id.corky); button.setOnClickListener(this); } // Implement the OnClickListener callback public void onClick(View v) { // do something when the button is clicked } ... } } public class ExampleActivity extends Activity implements OnClickListener { protected void onCreate(Bundle savedValues) { ... Button button = (Button)findViewById(R.id.corky); button.setOnClickListener(this); } // Implement the OnClickListener callback public void onClick(View v) { // do something when the button is clicked } ... } } public class ExampleActivity extends Activity implements OnClickListener { protected void onCreate(Bundle savedValues) { ... Button button = (Button)findViewById(R.id.corky); button.setOnClickListener(this); } // Implement the OnClickListener callback public void onClick(View v) { // do something when the button is clicked } ... } ... public class ExampleActivity extends Activity implements OnClickListener { protected void onCreate(Bundle savedValues) { ... Button button = (Button)findViewById(R.id.corky); button.setOnClickListener(this); } // Implement the OnClickListener callback public void onClick(View v) { // do something when the button is clicked } ... } 

    Dê uma olhada nesta lição também Construindo uma Calculadora Simples usando o Android Studio .

    Esta é a melhor maneira de implementair Onclicklistener paira muitos botões em uma linha, implementair View.onclicklistener.

     public class MainActivity extends AppCompatActivity **implements View.OnClickListener** { 

    Este é um button na atividade principal

      @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt_submit = (Button) findViewById(R.id.submit); bt_submit.setOnClickListener(this); 

    Este é um método ovviewide

     @Oviewride public void onClick(View view) { switch (view.getId()){ case R.id.submit: //action break; case R.id.secondbutton: //action break; } } } @Oviewride public void onClick(View view) { switch (view.getId()){ case R.id.submit: //action break; case R.id.secondbutton: //action break; } } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.