Botão não está funcionando

3 respostas
D

Galerinha,

Criei uma pequena aplicação que insere algumas informações em um cadastro.Gerei um botão tipo cadastrar mas o mesmo não devolve uma mensagem quando realiza o cadastro...o problema seria algo com o OnClick?

Segue o código...

import android.app.Activity;
import android.app.AlertDialog;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class BD extends Activity {

	String Nome_Banco = "Print";
	SQLiteDatabase BancoDeDados = null;
	EditText usuario;
	EditText email;
	EditText nome;
	EditText senha;
	EditText senhaConf;
	Button Salvar;
	Cursor cursor;
	Cadastro cad = new Cadastro();

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.cadastro);

		usuario = (EditText) findViewById(R.id.campoUsuario);
		email = (EditText) findViewById(R.id.campoEmail);
		nome = (EditText) findViewById(R.id.campoCad);
		senha = (EditText) findViewById(R.id.campoSenhaCad);
		senhaConf = (EditText) findViewById(R.id.campoSenhaConf);
		Salvar = (Button) findViewById(R.id.btCadastrar);
		btnSalvarDados();
	}

	public void CriaBanco() {
		try {
			BancoDeDados = openOrCreateDatabase(Nome_Banco,
					MODE_WORLD_READABLE, null);
			String SQL = "CREATE TABLE Db_Print(id_usuario integer PRIMARY KEY), usuario (6)TEXT NOT NULL,email (50)TEXT NOT NULL,nome (20)TEXT NOT NULL, senha (6) INTEGER NOT NULL,confSenha (6) INTEGER NOT NULL";
			BancoDeDados.execSQL(SQL);
			MensagemAlerta("Banco de Dados", "Banco criado com sucesso!");
		} catch (Exception erro) {
			MensagemAlerta("ERRO Banco de Dados",
					"Não foi possivel criar o banco!" + erro);
		} finally {
			BancoDeDados.close();
		}
	}

	public void GravaBanco(String usuario, String email, String nome,
			int senha, int confSenha) {
		try {
			BancoDeDados = openOrCreateDatabase(Nome_Banco,
					MODE_WORLD_READABLE, null);
			String SQL = "INSERT INTO Db_Print (usuario,email,nome,senha, confSenha) VALUES (usuario = '"
					+ usuario
					+ "',email ='"
					+ email
					+ ",nome='"
					+ nome
					+ "',senha='" + senha + "',confSenha=	'" + confSenha + "')";
			MensagemAlerta("Banco de Dados", "Registro gravado com sucesso!");
		} catch (Exception erro) {
			MensagemAlerta("ERRO Banco de Dados",
					"Não foi possivel gravar o registro!" + erro);
		} finally {
			BancoDeDados.close();
		}
	}

	private boolean VerificaRegistro() {
		try {
			BancoDeDados = openOrCreateDatabase(Nome_Banco,
					MODE_WORLD_READABLE, null);
			cursor = BancoDeDados.rawQuery("Select * from Print", null);

			if (cursor.getCount() != 0) {
				cursor.moveToFirst();
				return true;
			} else
				return false;
		} catch (Exception erro) {
			MensagemAlerta("ERRO Banco de Dados",
					"Não foi possivel verificar dados!" + erro);
			return false;
		} finally {
			BancoDeDados.close();
		}
	}

	public void btnSalvarDados() {
		Salvar.setOnClickListener(new View.OnClickListener() {

			public void onClick(View arg0) {
				MensagemAlerta("Banco de dados", "Registro salvo com sucesso!");
			}
		});
	}

	public void MensagemAlerta(String TituloAlerta, String MensagemAlerta) {
		AlertDialog.Builder Mensagem = new AlertDialog.Builder(cad);
		Mensagem.setTitle(TituloAlerta);
		Mensagem.setMessage(MensagemAlerta);
		Mensagem.setNeutralButton("OK", null);
		Mensagem.show();
	}
}

Mas como devo deixar realmente o Xml?
No xml do botão se eu coloco algo como:

android:onClick="btnSalvarDados"
android:clickable="true"/>

Ele me devolve um erro na aplicação...e senão coloco nada ele nem se importa com o pobre do botão! :(
Tô ficando meio maluco com isso...não apresenta erro na hora de compilar...Alguém dá uma luz?

:x

3 Respostas

A

Deve funcionar se você alterar seu método btnSalvarDados para isto:

public void btnSalvarDados(View view) { MensagemAlerta("Banco de dados", "Registro salvo com sucesso!"); } }

e manter aquela declaração no XML

Isso afirmo baseado na documentação: http://developer.android.com/training/basics/firstapp/starting-activity.html

D

Mas o problemas está aqui (eu acho)…quando chamo:

No botão ele retorna a mensagem de erro de Exception…o que pode ser?

E

O erro ta no xml msm, vc esqueceu de colocar alguns atributos…

<Button
android:layout_width=“fill_parent” <—Largura do botão
android:layout_height=“wrap_content” <—Altura do botão
android:id="@+id/btnSalvarDados"
/>

fazendo isso funciona direitinho :wink:

Criado 5 de outubro de 2012
Ultima resposta 11 de out. de 2012
Respostas 3
Participantes 3