mercredi 23 décembre 2015

To connect Register ,Login two activities using by Intent and some sqlite database problems.

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