DatabaseHelper.java When I insert the data and I open the "sqlite manager(in firefox add-ons)" to check whether my table create success or not, but unfortunately it failed.
package com.example.phanngocduc.sql_demo;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by Phan Ngoc Duc on 04/11/15.
*/
public class DatabaseHelper extends SQLiteOpenHelper{
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "database.db";
public static final String TABLE_NAME = "database_table";
public static final String COL_ID = "ID";
public static final String COL_NAME = "Name";
public static final String COL_ACCOUNT = "ACCOUNT";
public static final String COL_PASSWORD = "PASSWORD";
public static final String COL_PHONENUMBER = "PHONENUMBER";
public static final String COL_ROOMNUMBER = "ROOMNUMBER";
public static final String COL_STUDENTID = "STUDENTID";
public static final String COL_DEPARTMENT = "DEPARTMENT";
SQLiteDatabase db;
private static final String TABLE_CREATE = " create table database_table (ID INTEGER PRIMARY KEY not null auto_increment , " +
" NAME text not null , ACCOUNT text not null , PASSWORD text not null , PHONENUMBER text not null , ROOMNUMBER text not null , STUDENTID text not null , DEPARTMENT text not null )";
public DatabaseHelper(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TABLE_CREATE);
this.db = db;
}
public void insertContact(Contact c){
db = this.getWritableDatabase();
ContentValues values = new ContentValues();
String query = "select * from database_table";
Cursor cursor = db.rawQuery(query , null);
int count = cursor.getCount();
values.put(COL_ID , count);
values.put(COL_NAME , c.getName());
values.put(COL_ACCOUNT , c.getAccount());
values.put(COL_PASSWORD , c.getPassword());
values.put(COL_PHONENUMBER , c.getPhonenumber());
values.put(COL_ROOMNUMBER , c.getRoomnumber());
values.put(COL_STUDENTID , c.getStudentID());
values.put(COL_DEPARTMENT, c.getDepartment());
db.insert(TABLE_NAME, null, values);
db.close();
}
public String searchPass(String Account){
db = this.getReadableDatabase();
String query = "select Account , PASSWORD from " + TABLE_NAME;
Cursor cursor = db.rawQuery(query , null);
String a, b;
b = "not found";
if(cursor.moveToFirst()){
do {
a = cursor.getString(0);
if (a.equals(Account)){
b = cursor.getString(1);
break;
}
}
while (cursor.moveToNext());
}
return b ;
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String query = "DROP TABLE IF EXISTS" + TABLE_NAME;
db.execSQL(query);
this.onCreate(db);
}
}
Login.java
I want to get the data from the Database, but while I implement the emulator always stopped.
package com.example.phanngocduc.sql_demo;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class Login extends AppCompatActivity {
DatabaseHelper helper = new DatabaseHelper(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_login, menu);
return true;
}
public void goBack(View v) {
finish();
}
public void onButtonClick(View v)
{
if(v.getId() == R.id.btnLogin) {
EditText a = (EditText) findViewById(R.id.LgAccount);
String str = a.getText().toString();
EditText b = (EditText) findViewById(R.id.LgPassword);
String pass = b.getText().toString();
String password = helper.searchPass(str);
if(pass.equals(password)){
Intent i = new Intent(Login.this , Bd.class);
i.putExtra("Name", str);
startActivity(i);
}
else {
Toast temp = Toast.makeText(Login.this , "password don't match" , Toast.LENGTH_SHORT);
temp.show();
}
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
activity_login.xml
<LinearLayout xmlns:android="http://ift.tt/nIICcg"
xmlns:tools="http://ift.tt/LrGmb4"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
tools:context="com.example.phanngocduc.sql_demo.Login">
<TextView
android:layout_width="wrap_content"
android:text="帳號:"
android:layout_height="wrap_content"
android:textSize="20dp" />
<EditText
android:id="@+id/LgAccount"
android:layout_width="match_parent"
android:layout_marginBottom="10dp"
android:layout_height="wrap_content"
android:singleLine="true" />
<TextView
android:layout_width="wrap_content"
android:text="密碼:"
android:layout_height="wrap_content"
android:textSize="20dp" />
<EditText
android:id="@+id/LgPassword"
android:layout_width="match_parent"
android:layout_marginBottom="10dp"
android:inputType="textPassword"
android:layout_height="wrap_content"
android:singleLine="true" />
<Button
android:layout_width="272dp"
android:layout_height="wrap_content"
android:text="登入"
android:id="@+id/btnLogin"
android:layout_gravity="center_horizontal"
android:onClick="onButtonClick" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="註冊帳號"
android:id="@+id/torp"
android:layout_gravity="center_horizontal"
android:textSize="20dp"
android:onClick="goBack" />
</LinearLayout>
MainActivity.java This is the signup page and the problem is when I use the Intent to open the Login page first it will appear the emulator stopped, but it still can open the Login page.
package com.example.phanngocduc.sql_demo;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
DatabaseHelper helper = new DatabaseHelper(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onSendClick(View v) {
Intent it = new Intent(this, Login.class);
startActivity(it);
if (v.getId() ==R.id.Send)
{
EditText name = (EditText)findViewById(R.id.Name);
EditText account = (EditText)findViewById(R.id.Account);
EditText password= (EditText)findViewById(R.id.Password);
EditText password1= (EditText)findViewById(R.id.Password1);
EditText phonenumber = (EditText)findViewById(R.id.PhoneNumber);
EditText roomnumber = (EditText)findViewById(R.id.RoomNumber);
EditText studentid = (EditText)findViewById(R.id.StudentID);
EditText department = (EditText)findViewById(R.id.Department);
String Namestr = name.getText().toString();
String Accountstr = account.getText().toString();
String Passwordstr = password.getText().toString();
String Password1str = password1.getText().toString();
String Phonenumberstr = phonenumber.getText().toString();
String Roomnumberstr = roomnumber.getText().toString();
String StudentIDstr = studentid.getText().toString();
String Departmentstr = department.getText().toString();
if (!Passwordstr.equals(Password1str)){
Toast pass = Toast.makeText(MainActivity.this , "password don't match!" , Toast.LENGTH_SHORT);
pass.show();
}
else {
Contact c = new Contact();
c.setName(Namestr);
c.setAccount(Accountstr);
c.setPassword(Passwordstr);
c.setPhonenumber(Phonenumberstr);
c.setRoomnumber(Roomnumberstr);
c.setStudentID(StudentIDstr);
c.setDepartment(Departmentstr);
helper.insertContact(c);
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
activity_main.xml
<RelativeLayout xmlns:android="http://ift.tt/nIICcg"
xmlns:tools="http://ift.tt/LrGmb4" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="姓名:"
android:id="@+id/textView"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_marginTop="5dp" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Name"
android:layout_alignTop="@+id/textView"
android:layout_alignParentEnd="true"
android:layout_toEndOf="@+id/textView"
android:layout_marginTop="5dp"
android:singleLine="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="帳號:"
android:id="@+id/textView2"
android:layout_below="@+id/Name"
android:layout_alignParentStart="true"
android:layout_marginTop="5dp" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Account"
android:layout_alignTop="@+id/textView2"
android:layout_alignStart="@+id/Name"
android:layout_alignEnd="@+id/Name"
android:layout_marginTop="5dp"
android:singleLine="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="密碼:"
android:id="@+id/textView3"
android:layout_below="@+id/Account"
android:layout_alignParentStart="true"
android:layout_marginTop="5dp" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:ems="10"
android:id="@+id/Password"
android:layout_alignTop="@+id/textView3"
android:layout_alignStart="@+id/Account"
android:layout_alignEnd="@+id/Account"
android:layout_marginTop="5dp"
android:singleLine="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="確認密碼:"
android:id="@+id/textView4"
android:layout_below="@+id/Password"
android:layout_alignParentStart="true"
android:layout_marginTop="5dp" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Password1"
android:layout_alignTop="@+id/textView4"
android:layout_alignEnd="@+id/Password"
android:layout_toEndOf="@+id/textView4"
android:layout_marginTop="5dp"
android:singleLine="true"
android:inputType="textPassword" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="手機:"
android:id="@+id/textView5"
android:layout_below="@+id/Password1"
android:layout_alignParentStart="true"
android:layout_marginTop="5dp" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/PhoneNumber"
android:layout_alignTop="@+id/textView5"
android:layout_alignStart="@+id/Password"
android:layout_alignEnd="@+id/Password1"
android:layout_marginTop="5dp"
android:singleLine="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="房號:"
android:id="@+id/textView6"
android:layout_below="@+id/PhoneNumber"
android:layout_alignParentStart="true"
android:layout_marginTop="5dp" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/RoomNumber"
android:layout_alignTop="@+id/textView6"
android:layout_alignStart="@+id/PhoneNumber"
android:layout_alignEnd="@+id/PhoneNumber"
android:layout_marginTop="5dp"
android:singleLine="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="學號:"
android:id="@+id/textView7"
android:layout_below="@+id/RoomNumber"
android:layout_alignParentStart="true"
android:layout_marginTop="5dp" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/StudentID"
android:layout_alignTop="@+id/textView7"
android:layout_alignStart="@+id/RoomNumber"
android:layout_alignEnd="@+id/RoomNumber"
android:layout_marginTop="5dp"
android:singleLine="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="系級:"
android:id="@+id/textView8"
android:layout_below="@+id/StudentID"
android:layout_alignParentStart="true"
android:layout_marginTop="5dp" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Department"
android:layout_below="@+id/StudentID"
android:layout_alignStart="@+id/StudentID"
android:layout_alignEnd="@+id/StudentID"
android:layout_marginTop="5dp"
android:singleLine="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="送出"
android:id="@+id/Send"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:onClick="onSendClick" />
</RelativeLayout>
Contact.java
package com.example.phanngocduc.sql_demo;
/**
* Created by Brian on 2015/12/22.
*/
public class Contact {
int ID;
String NAME, ACCOUNT, PASSWORD, PHONENUMBER,ROOMNUMBER,STUDENTID,DEPARTMENT;
public void setId(int ID)
{
this.ID = ID;
}
public int getId()
{
return this.ID;
}
public void setName(String NAME)
{
this.NAME = NAME;
}
public String getName()
{
return this.NAME;
}
public void setAccount(String ACCOUNT)
{
this.ACCOUNT = ACCOUNT;
}
public String getAccount()
{
return this.ACCOUNT;
}
public void setPassword(String PASSWORD)
{
this.PASSWORD = PASSWORD;
}
public String getPassword()
{
return this.PASSWORD;
}
public void setPhonenumber(String PHONENUMBER)
{
this.PHONENUMBER = PHONENUMBER;
}
public String getPhonenumber()
{
return this.PHONENUMBER;
}
public void setRoomnumber(String ROOMNUMBER) {this.ROOMNUMBER = ROOMNUMBER;}
public String getRoomnumber()
{
return this.ROOMNUMBER;
}
public void setStudentID(String STUDENTID)
{
this.STUDENTID = STUDENTID;
}
public String getStudentID()
{
return this.STUDENTID;
}
public void setDepartment(String DEPARTMENT)
{
this.DEPARTMENT = DEPARTMENT;
}
public String getDepartment()
{
return this.DEPARTMENT;
}
}
Bd.java
when you click login will jump to this page and it will show the message welcome and the user name on the top of screen.
package com.example.phanngocduc.sql_demo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class Bd extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bd);
String name = getIntent().getStringExtra("Name");
TextView tv = (TextView)findViewById(R.id.LgAccount);
tv.setText(name);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_bd, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
activity.Bd.xml
<LinearLayout xmlns:android="http://ift.tt/nIICcg"
xmlns:tools="http://ift.tt/LrGmb4" android:layout_width="match_parent"
android:layout_height="wrap_content" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.phanngocduc.sql_demo.Bd"
android:weightSum="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="38dp"
android:text="Welcome,"
android:id="@+id/textView9"
android:layout_weight="0.05"
android:textSize="30dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/emptyString"
android:id="@+id/TVname"
android:layout_weight="0.05" />
Aucun commentaire:
Enregistrer un commentaire