Как я могу получить информацию от логина родителя (пользователя) - PullRequest
0 голосов
/ 08 марта 2019

Моя активность Parent_home требует данных (имя, фамилия, идентификатор) от пользователя, вошедшего в систему, моя операция входа в систему может только проверить, есть ли у базы данных родительские (пользовательские) учетные данные, и я хочу после проверки, есть ли родитель в активности входа в систему, родительские данные из базы данных будут переданы в Parent_home Activity

DatabaseHelper.java

package edu.angelo.parentsportal;

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

import java.util.ArrayList;

public class DatabaseHelper extends SQLiteOpenHelper {

public static final String DATABASE_NAME = "Parents_Portal.db";
public static final String TABLE_NAME = "Parents_Table";
public static final String COL_0 = "ID";
public static final String COL_1 = "NAME";
public static final String COL_2 = "SURNAME";
public static final String COL_3 = "EMAIL_ADDRESS";
public static final String COL_4 = "PHONE_NUMBER";
public static final String COL_5 = "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, NAME TEXT, SURNAME TEXT, EMAIL_ADDRESS TEXT, PHONE_NUMBER 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 name, String surname, String email_address, String phone_number, String password){
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(COL_1,name);
    contentValues.put(COL_2,surname);
    contentValues.put(COL_3,email_address);
    contentValues.put(COL_4,phone_number);
    contentValues.put(COL_5,password);
    long result = db.insert(TABLE_NAME, null , contentValues);
    if (result == -1) {
        return false;
    }
    else {
        return true;
    }
}

public ArrayList<ParentModel> getAllParentsData(){
    ArrayList<ParentModel> list = new ArrayList<>();
    String sql = "select * from " + TABLE_NAME;
    SQLiteDatabase mydb = this.getWritableDatabase();
    Cursor cursor = mydb.rawQuery(sql, null);
    if (cursor.moveToFirst()) {
        do {
            ParentModel parentModel = new ParentModel();
            parentModel.setID(cursor.getString(0));
            parentModel.setName(cursor.getString(1));
            parentModel.setSurname(cursor.getString(2));
            parentModel.setEmail(cursor.getString(3));
            parentModel.setPhone_number(cursor.getString(4));
            parentModel.setPassword(cursor.getString(5));
            list.add(parentModel);
        }
        while (cursor.moveToNext());
    }
    return list;
}

public void updateData(int id, String name , String surname , String email , String phone_number , String password){
   ContentValues contentValues = new ContentValues();
    contentValues.put(COL_1, name);
    contentValues.put(COL_2, surname);
    contentValues.put(COL_3, email);
    contentValues.put(COL_4, phone_number);
    contentValues.put(COL_5, password);

    SQLiteDatabase mydb = this.getWritableDatabase();
    mydb.update(TABLE_NAME, contentValues, COL_0 + "=" + id, null);
    mydb.close();
}

public void deleteParent(int id){
    SQLiteDatabase mydb = this.getWritableDatabase();
    mydb.delete(TABLE_NAME, COL_0 + "=" + id, null);
    mydb.close();
}


public ArrayList<ParentModel> getParentLoginData(String emailOrPhone,String pwd){
    ArrayList<ParentModel> list = new ArrayList<>();
    String sql = "SELECT * FROM " + TABLE_NAME+" WHERE ("+COL_3+"= "+emailOrPhone+" OR "+COL_4 +" = "+emailOrPhone+") AND "+COL_5 +" = "+pwd;
    SQLiteDatabase mydb = this.getWritableDatabase();
    Cursor cursor = mydb.rawQuery(sql, null);
    if (cursor.moveToFirst()) {
        do {
            ParentModel parentModel = new ParentModel();
            parentModel.setID(cursor.getString(0));
            parentModel.setName(cursor.getString(1));
            parentModel.setSurname(cursor.getString(2));
            parentModel.setEmail(cursor.getString(3));
            parentModel.setPhone_number(cursor.getString(4));
            parentModel.setPassword(cursor.getString(5));
            list.add(parentModel);
        }
        while (cursor.moveToNext());
    }
    return list;
}
}

Login.java

package edu.angelo.parentsportal;

import android.app.ProgressDialog;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Patterns;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.util.ArrayList;

public class Login extends AppCompatActivity implements View.OnClickListener {

private EditText editTextEmailPhone;
private EditText editTextPassword;
private Button Login;
private ProgressDialog progressDialog;
DatabaseHelper mydb;
SQLiteDatabase sqLiteDatabase;
CustomAdapter customAdapter;
Cursor cursor;
ArrayList<ParentModel> arrayList;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);


    editTextEmailPhone = findViewById(R.id.input_username);
    editTextPassword = findViewById(R.id.input_password);
    findViewById(R.id.btn_register).setOnClickListener(Login.this);

    progressDialog = new ProgressDialog(this);

    mydb =new DatabaseHelper(this);
    sqLiteDatabase = mydb.getReadableDatabase();
}

@Override
public void onClick(View view) {
    switch (view.getId()){
        case R.id.btn_register: {
            userLogin();
            break;
        }

    }


}


private void userLogin() {
    String email = editTextEmailPhone.getText().toString().trim();
    String password = editTextPassword.getText().toString().trim();

    if (email.isEmpty()) {
        editTextEmailPhone.setError("Email or Phone Number is required");
        editTextEmailPhone.requestFocus();
        return;
    }

    if (password.isEmpty()) {
        editTextPassword.setError("Password is required");
        editTextPassword.requestFocus();
        return;
    }
    if (password.length()<6 ){
        editTextPassword.setError("Minimum of length of password should be 6");
        editTextPassword.requestFocus();
        return;
    }
    //if the email&pass is not empty
    //display dialog
    else{
        progressDialog.setMessage("Please Wait...");
        progressDialog.show();

        if (mydb.getParentLoginData(editTextEmailPhone.getText().toString(),editTextPassword.getText().toString()).size()>0) {
            progressDialog.dismiss();
            DatabaseHelper mydb = new DatabaseHelper(this);
            SharedPrefs.saveSharedSetting(this, "CaptainCode", "false");
            Intent intent = new Intent(Login.this, Parent_Home.class);
           // intent or something to forward the data from the selected parent row from the database
            Toast.makeText(this, "Success", Toast.LENGTH_SHORT).show();
            startActivity(intent);
            finish();
        }

        else {
            Toast.makeText(getApplicationContext(), "Login error", Toast.LENGTH_SHORT).show();
            progressDialog.dismiss();
            return;
        }
    }
}

}

ParentModel.java (при необходимости)

package edu.angelo.parentsportal;

public class ParentModel {
public String ID;
public String Name;
public String Surname;
public String Email;
public String Phone_number;
public String Password;

public String getID() {
    return ID;
}

public void setID(String ID) {
    this.ID = ID;
}

public String getName() {
    return Name;
}

public void setName(String name) {
    Name = name;
}

public String getSurname() {
    return Surname;
}

public void setSurname(String surname) {
    Surname = surname;
}

public String getEmail() {
    return Email;
}

public void setEmail(String email) {
    Email = email;
}

public String getPhone_number() {
    return Phone_number;
}

public void setPhone_number(String phone_number) {
    Phone_number = phone_number;
}

public String getPassword() {
    return Password;
}

public void setPassword(String password) {
    Password = password;
}
}

1 Ответ

0 голосов
/ 08 марта 2019

Вы можете передать значения в операцию с помощью Intent Extras при запуске операции через Intent.

Таким образом, вы используете что-то вроде: -

    ArrayList<ParentModel> parents = mydb.getParentLoginData(editTextEmailPhone.getText().toString(),editTextPassword.getText().toString());

    if (parents.size()>0) {
        progressDialog.dismiss();
        DatabaseHelper mydb = new DatabaseHelper(this);
        SharedPrefs.saveSharedSetting(this, "CaptainCode", "false");
        Intent intent = new Intent(Login.this, Parent_Home.class);
        intent.putExtra("IK_CURRENTPARENTID",parents[0].getId());
        intent.putExtra("IK_CURRENTPARENTNAME",parents[0].getName());
        intent.putExtra("IK_CURRENTPARENTSURNAME",parents[0].getSurname();
       // intent or something to forward the data from the selected parent row from the database
        Toast.makeText(this, "Success", Toast.LENGTH_SHORT).show();
        startActivity(intent);
        finish();
    }

Затем вы получаете значения изДополнительные функции в действии Parent_Home .используя что-то похожее на метод onCreate : -

 currentId = getIntent().getStringExtra("IK_CURRENTPARENTID");
 currentName = getIntent().getStringExtra("IK_CURRENTPARENTNAME");
 currentSurName = getIntent().getStringExtra("IK_CURRENTPARENTSURNAME");
  • , отмечая, что в приведенном выше примере предполагается, что currentId, currentName и currentSurName объявлены как переменные класса.
  • Обычно вы также определяете константы для ключей Intent Extra чаще, чем жестко их кодируете.
  • Выше приведен принципиальный код, он не был запущен или протестирован и поэтому может содержать некоторые ошибки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...