Jump to content
rfzdream

SQLite Base de Dados Funcional Android Studio

Recommended Posts

rfzdream

Boas, não sei se há tópicos que me possam esclarecer esta dúvida e como não vi nenhum tutorial explícito decidi criar este topic a fim de ficar esclarecido.

Para um projeto de uma cadeira, estou a tentar criar um sistema de Login / Registo no Android Studio usando SQLite e a única coisa que consigo fazer é criar a base de dados. Segui alguns tutoriais encontrados no Google mas quando criado o código, embora não me dê erros nenhuns, o programa não corre no simulador.

Tenho um MainActivity, onde estão os componentes do Login (Utilizador + Password) com o seguinte código:

package pt.ulp.se.moviefeed;

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

public class MainActivity extends AppCompatActivity {
	DatabaseHelper myDb;
	Button btn_pagerego,btn_regfim,btn_login;
	EditText reg_user, reg_pw1, reg_pw2;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		myDb = new DatabaseHelper(this);

		reg_user = (EditText)findViewById(R.id.reg_user);
		reg_pw1 = (EditText)findViewById(R.id.reg_pw1);
		reg_pw2 = (EditText)findViewById(R.id.reg_pw2);

		Button btn_regfim = (Button)findViewById(R.id.bt3);
                
                Registo_Final();
	}

	public void Botao_Registar_Pagina(View v) {
		btn_pagerego = (Button)findViewById(R.id.bt1);
		btn_pagerego.setonclickListener(new View.onclickListener() {
			@Override
			public void onclick(View v) {
				Intent intent = new Intent(MainActivity.this,RegistoActivity.class);
				startActivity(intent);
			}
		});
	}

	public void Registo_Final() {
		btn_regfim.setonclickListener(
				new View.onclickListener() {
					@Override
					public void onclick(View v) {
					 boolean Sucesso = myDb.insertData(reg_user.getText().toString(),
								reg_pw1.getText().toString());
						if (Sucesso = true)
							Toast.makeText(MainActivity.this, "Registo bem sucedido!",Toast.LENGTH_LONG).show();
						else
							Toast.makeText(MainActivity.this, "Os dados não estão corretos!",Toast.LENGTH_LONG).show();
					}
				}
		);
	}
}
Tenho um RegistoActivity, onde estão os componentes (Utilizador + Password1 + Password2 )

Tenho um DatabaseHelper.java com o seguinte código:

package pt.ulp.se.moviefeed;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**	
 * Created by rfz on 01/02/2016.
 */
public class DatabaseHelper extends SQLiteOpenHelper {
	public static final String DATABASE_NAME = "Cliente_db";
	public static final String TABLE_NAME = "Cliente_table";
	public static final String COL_1 = "ID";
	public static final String COL_2 = "Nome";
	public static final String COL_3 = "Password";

	public DatabaseHelper(Context context) {
		super(context, DATABASE_NAME, null, 1);
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("CREATE table " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, NOME TEXT, PASSWORD TEXT)");
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
		onCreate(db);
	}

	public boolean insertData(String nome, String password) {
		SQLiteDatabase db = this.getWritableDatabase();
		ContentValues contentValues = new ContentValues();
		contentValues.put(COL_2,nome);
		contentValues.put(COL_3,password);
		long resultado = db.insert(TABLE_NAME,null,contentValues);
		if (resultado == -1)
			return false;
		else
			return true;
	}
}
Visto que o compilador não encontrou nenhum erro, creio que sejam problemas de semântica no código, gostava de pôr isto a correr o mais depressa possível...

Como alteração, decidi apagar o RegistoActivity e colocar os componentes do Registo e os do Login na MainActivity. Não funciona é lá muito bem...

Ajudem-me, por favor!!!

Obrigado, desde já!

Rafael

Share this post


Link to post
Share on other sites
Kline777

O que acontece ao certo quando fazes submeter?

Carregas no btn_regfim e aparece alguma mensagem ou dá erro antes de ai chegares?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.