Como acionar um evento de clique no botão usando o código no Android? Quero acionar o botão clicar programaticamente quando ocorrer outro evento.
Mesmo problema que estou enfrentando
public void onDateSelectedButtonClick(View v){
/*Something Alarm Management
http://www.java2s.com/Code/Android/Core-Class/Alarmdemo.htm
copied code from this site*/
}
Código do botão:
<Button
android:onClick="onDateSelectedButtonClick"
android:text="Set notification for this date" />
Mas eu quero chamar essa função OnLoadLayout sem OnClickEvent
Respostas:
Há um caminho melhor.
http://developer.android.com/reference/android/view/View.html#performClick ()
isso deve responder a todos os seus problemas. toda visualização herda essa função, incluindo botão, botão giratório etc.
Apenas para esclarecer, o View não possui um método estático performClick (). Você deve chamar performClick () em uma instância do View. Por exemplo, você não pode simplesmente ligar
Em vez disso, faça algo como:
fonte
Apenas para esclarecer o que o moonlightcheese afirmou: Para acionar um evento de clique no botão através do código no Android, forneça o seguinte:
fonte
você pode fazer assim
fonte
Às vezes, o Android
callOnClick()
( adicionado na API 15 ) pode ser uma opção melhor na minha experiência do queperformClick()
. Se um usuário tiver os sons de seleção ativados,performClick()
poderá fazer com que ele ouça dois sons de seleção contínuos que estão um pouco em camadas uns sobre os outros, o que pode ser dissonante. (Um som de seleção para o primeiro clique no botão do usuário e outro para o outro botãoOnClickListener
que você está chamando via código.)fonte
Basta escrever esta linha de código simples: -
onde button é a variável de referência da classe Button e definida da seguinte forma: -
É isso aí.
fonte
A partir da API15, você também pode usar
callOnClick()
essa chamada diretamente da exibição anexada OnClickListener. Diferentemente de performClick (), isso chama apenas o ouvinte e não executa nenhuma ação de clique associada, como relatar um evento de acessibilidade.fonte
Se você não usar o
sender
argumento, por que não refatorar a implementação do manipulador de botões para separar a função e chame-a de onde quiser (do manipulador de botões e do outro local).De qualquer forma, é um design melhor e mais limpo - um código que precisa ser chamado no manipulador de botões E de outros lugares merece ser refatorado para ter a própria função. Além disso, ajudará você a separar a manipulação da interface do usuário do código lógico do aplicativo. Você também terá um bom nome para a função, não apenas onDateSelectedButtonClick ().
fonte