[Resolvido] Tratamento de eventos no botão

Boa tarde a todos,

Estou estudando android pelo livro Google Android de Ricardo R. Lecheta e na página 95 é mostrada uma maneira de tratar eventos de um botão, que é definindo o nome do método no arquivo activity_main. xml, e implementando o respetivo método na classe MainActivity3.java.

Sendo assim, eu fiz:

activity_main. xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:orientation="vertical"
    android:padding="16dp"
    tools:context="com.example.utilizador.myquartaapp.MainActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/usuario" />

    <EditText
        android:id="@+id/tLogin"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="text"
        android:maxLines="1" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/senha" />

    <EditText
        android:id="@+id/tSenha"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:maxLines="1" />

    <Button
        android:id="@+id/btLogin"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="6dp"
        android:text="@string/login"
        android:textColor="black"
        android:onClick="onClickBtLogin"
        android:layout_gravity="center" />

    <Button
        android:id="@+id/btApagar"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="6dp"
        android:text="Limpar"
        android:textColor="black"
        android:onClick="onClickBtApagar"
        android:layout_gravity="center" />

</LinearLayout>

MainActivity3.java

package com.example.utilizador.myquartaapp;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity3 extends AppCompatActivity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btLogin = (Button) findViewById(R.id.btLogin);
        Button btApagar = (Button) findViewById(R.id.btApagar);
        btLogin.setOnClickListener(onClickBtLogin());
        btApagar.setOnClickListener(onClickBtApagar());
    }
    public void onClickBtLogin(View v)
    {
        TextView tLogin = (TextView) findViewById(R.id.tLogin);
        TextView tSenha = (TextView) findViewById(R.id.tSenha);
        String login = tLogin.getText().toString();
        String senha = tSenha.getText().toString();
        if (v.getId() == R.id.btLogin)
        {
            if ("claudio".equals(login) && "123".equals(senha))
                 alert("Bem-vindo, login realizado com sucesso!!!");
            else
                 alert("Login ou senha incorretos!!!");
        }
    }
    public void onClickBtApagar(View v)
    {
        if (v.getId() == R.id.btApagar)
            alert("Caixas de textos limpas!!!");
    }
    private void alert(String s)
    {
        Toast.makeText(this, s, Toast.LENGTH_SHORT).show();
    }
}

O que ocorre é que está dando um erro em,

btLogin.setOnClickListener(onClickBtLogin());
btApagar.setOnClickListener(onClickBtApagar());

porque eu tenho que fazer referência a cada uma das view’s dos respectivos botões nos métodos onClickBtLogin() e onClickBtApagar().

Por favor, como eu faria isso ???

Agradeço desde já.

Isso vai acontecer por que não é desta forma que você deve fazer.
Quando você mapeia a ação do botao no layout (activity_main.xml), não terá que fazê-lo no java.
Se vai fazer no java, deve lembrar que o método setOnClickListener espera uma instância da interface View.OnClickListener o que, obviamente, os métodos que você tentou passar não retornam.
Logo, reveja os trechos do livro que dizem isso e corrija teu código.

@Luis_Augusto_Santos,

Valeu mais uma vez irmão!

E é bem mais simples!!!

Rodei o aplicativo e funcionou direitinho!!!

O código fica assim:

MainActivity3.java

package com.example.utilizador.myquartaapp;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity3 extends AppCompatActivity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void onClickBtLogin(View v)
    {
        TextView tLogin = (TextView) findViewById(R.id.tLogin);
        TextView tSenha = (TextView) findViewById(R.id.tSenha);
        String login = tLogin.getText().toString();
        String senha = tSenha.getText().toString();
        if (v.getId() == R.id.btLogin)
        {
            if ("claudio".equals(login) && "123".equals(senha))
                 alert("Bem-vindo, login realizado com sucesso!!!");
            else
                 alert("Login ou senha incorretos!!!");
        }
    }
    public void onClickBtApagar(View v)
    {
        if (v.getId() == R.id.btApagar)
            alert("Caixas de textos limpas!!!");
    }
    private void alert(String s)
    {
        Toast.makeText(this, s, Toast.LENGTH_SHORT).show();
    }
}

Aqui eu não tenho o Android Studio, senão teria mandado um exemplo também.

Agradeço mesmo assim!!!