Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

onClickListener não é disparado

Olá pessoal, estou criando o listener para o clique do botão, mas quando executo em meu dispositivo android, a mensagem do Toast não aparece, porém tudo funciona no emulador do Android Studio, preciso habilitar alguma coisa? Segue o código:

        Button botaoSalvar = (Button) findViewById(R.id.formulario_botao_salvar);

        if(botaoSalvar != null) {
            botaoSalvar.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(FormularioActivity.this, "Botão Clicado", Toast.LENGTH_SHORT).show();
                }
            });
        }

Obrigado!

6 respostas

Mostra o código completo dessa classe FormularioActivity, pra eu dar uma olhada.

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class FormularioActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_formulario);

        Button botaoSalvar = (Button) findViewById(R.id.formulario_botao_salvar);

        if(botaoSalvar != null) {
            botaoSalvar.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(FormularioActivity.this, "Botão Clicado", Toast.LENGTH_SHORT).show();
                }
            });
        }
    }
}

Esse código está correto. Deixa eu ver o layout activity_formulario.xml, por favor.

É um caso bem estranho mesmo. Segue o código:

<?xml version="1.0" encoding="utf-8"?>

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent">

    <LinearLayout
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="br.com.kawabanga.agenda.FormularioActivity">

        <EditText
            android:id="@+id/formulario_nome"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Nome"/>

        <EditText
            android:id="@+id/formulario_endereco"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Endereço"/>

        <EditText
            android:id="@+id/formulario_telefone"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Telefone"/>

        <EditText
            android:id="@+id/formulario_site"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Site"/>

        <RatingBar
            android:id="@+id/formulario_nota"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:numStars="5"
            android:max="10"
            android:layout_gravity="center"/>

        <Button
            android:id="@+id/formulario_botao_salvar"
            android:text="Salvar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
</ScrollView>
solução!

Douglas, Felipe, tive o mesmo problema. Para resolver, na linha:

Toast.makeText(FormularioActivity.this, "Botão Clicado", Toast.LENGTH_SHORT).show();

Troque String "Botão Clicado" por R.string.msg:

Toast.makeText(FormularioActivity.this, R.string.msg, Toast.LENGTH_SHORT).show();

No projeto, vá em res/values e adicione a seguinte linha (dentro da tag resources) ao arquivo string.xml:

<string name="msg">Botão Clicado</string>

Muito bom Euclides, realmente funcionou, obrigado cara.