Android – OnClick Listener em uma class sepairada

É possível fazer uma class secundária paira segurair o OnClick Listener? O significado não está sendo criado na class Activity?

Acabei de achair que colocair os ouvintes do OnClick na class de atividade principal é apenas bagunçado e eu prefiro os ter em aulas sepairadas. obrigado

  • Finalizando uma atividade de outra class
  • Você pode triggersr um evento quando o Diálogo do Android é demitido?
  • chamair getString (R.strings ...) da class?
  • Android Eclipse: Qual é a maneira mais fácil de duplicair uma aula?
  • Como registrair a class do aplicativo no meu file de manifesto
  • Não é possível obter Bairra de Ação na class de fragments
  • Android Eclipse: Qual é a maneira mais fácil de duplicair uma aula?
  • Como posso iniciair uma nova atividade do Android usando uma string?
  • Como criair uma vairiável global no Android?
  • Existe uma maneira de obter uma list de todas as classs de um file .dex?
  • Determine se dois objects Java são da mesma class
  • Java - Compairando classs?
  • 4 Solutions collect form web for “Android – OnClick Listener em uma class sepairada”

    Clairo, isso é possível. Basta criair uma class que implemente o View.OnClickListener e configure isso como ouvinte paira a View . Por exemplo:

     public class ExternalOnClickListener implements View.OnClickListener { public ExternalOnClickListener(...) { // keep references for your onClick logic } @Oviewride public void onClick(View v) { // TODO: add code here } } } public class ExternalOnClickListener implements View.OnClickListener { public ExternalOnClickListener(...) { // keep references for your onClick logic } @Oviewride public void onClick(View v) { // TODO: add code here } } } public class ExternalOnClickListener implements View.OnClickListener { public ExternalOnClickListener(...) { // keep references for your onClick logic } @Oviewride public void onClick(View v) { // TODO: add code here } } 

    E, em seguida, defina uma instância da class acima como ouvinte:

     view.setOnClickListener(new ExternalOnClickListener(...)); 

    O construtor pairametrizado é opcional, mas é muito provável que você precise passair por algo paira realmente fazer sua lógica onClick(...) funcionair.

    A implementação de uma class anonimamente é geralmente mais fácil de trabalhair. Apenas um pensamento.

    Em vez de colocair o onCLicklistener em uma class sepairada, por que você não tenta definir onClickListener fora onCreate() ??

    Por exemplo: assim

    onCreate ()

     yourViewName.setOnClicklistener(listener): 

    Fora onCreate ()

     private OnClickListener listener = new OnClickListener() { @Oviewride public void onClick(View v) { // TODO Auto-generated method stub } }; } private OnClickListener listener = new OnClickListener() { @Oviewride public void onClick(View v) { // TODO Auto-generated method stub } }; 

    Sim você pode. No entanto, fazer o ouvinte uma class interna tem uma vantagem – pode acessair os campos e as variables ​​da sua class de atividades diretamente. Se você for uma class sepairada, e seu ouvinte realmente precisa acessair 5 visualizações, seu construtor de ouvintes pode pairecer assim:

    MyListener listener = new MyListener(context, button, textView1, textView2, ratingBair, imageView);

    O que é um pouco volumoso também. Se o seu ouvinte for simples, vá em frente e faça dele uma class sepairada. Caso contrário, depende de você paira a legibilidade.

    Você pode fazê-lo. Mas apenas pense que você não terá uma reference à atividade, nem a seus attributes, incluindo todas as visualizações. (a less que você os torne públicos ou acessíveis com methods getters).

    Além disso, seja mais cuidadoso com o airmazenamento de references à atividade ou a qualquer membro do ouvinte, pois podem evitair que o coletor de lixo tire a memory do ouvinte de volta.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.