mardi 7 avril 2015

User Login with SQLite database java.lang.NullPointerException

I'm having a problem using my database to check the username and password of the user. I'm using a query to select the specific row and then check the password against what was entered by the user. The error I am getting is a java.lang.NullPointerException in my login page when i call the


Users userlogin = db.userlogin(usernameinput);


After looking at the method I'm thinking its the first cursor that causes it to fail


cursor.getInt(0);


What I'm wondering is am I right in thinking this and what can I do to change it? I've tried changing the if statement to


If(cursor.getcount() > 0)


and still no luck.



public class LoginPage extends ActionBarActivity {
Button loginbutton;
EditText usernameuser, passworduser;
DatabaseHandler db;
String usernameinput, passwordinput;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_page);




loginbutton = (Button) findViewById(R.id.loginbtn);
usernameuser = (EditText) findViewById(R.id.usernameInsert);
passworduser = (EditText) findViewById(R.id.passwordInsert);





loginbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
usernameinput = usernameuser.getText().toString();
passwordinput = passworduser.getText().toString();
Users userlogin = db.userLogin(usernameinput);
if (usernameinput.equals(userlogin.get_username()) && passwordinput.equals(userlogin.get_password())) {
startActivity(new Intent(getApplicationContext(), Home_Page.class));
}
else {
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_SHORT).show();
}
}

});


Database handler Query used to check login:



public Users userLogin(String username) {

SQLiteDatabase db = this.getReadableDatabase();
String[] projection = {KEY_USER_ID, KEY_USERNAME, KEY_PASSWORD};
String selection = KEY_USERNAME + " =?";
String[] selectionargs = {username};
Cursor cursor = db.query(TABLE_USERS, projection, selection, selectionargs, null, null,null );
if (cursor != null)
cursor.moveToFirst();
Users users = new Users(
cursor.getInt(0),
cursor.getString(1),
cursor.getString(2),
cursor.getInt(3),
cursor.getString(4),
cursor.getString(5),
cursor.getDouble(6),
cursor.getDouble(7),
cursor.getDouble(8),
cursor.getDouble(9),
cursor.getDouble(10),
cursor.getDouble(11),
cursor.getDouble(12),
cursor.getDouble(13),
cursor.getDouble(14),
cursor.getDouble(15),
cursor.getDouble(16),
cursor.getDouble(17),
cursor.getDouble(18),
cursor.getDouble(19));
cursor.close();
return users;

}


enter code here


Aucun commentaire:

Enregistrer un commentaire