-2

I am not maintaining a session right now for users but when I sign up it works ok and it moves to the next activity but when I sign in it crashes the application while if the data is not correct even then it should display a toast but its not happening. This is the list of errors

04-15 11:56:51.180  12421-12421/com.example.ali.projectbuddy E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.IllegalStateException: Could not execute method of the activity
            at android.view.View$1.onClick(View.java:3607)
            at android.view.View.performClick(View.java:4212)
            at android.view.View$PerformClick.run(View.java:17476)
            at android.os.Handler.handleCallback(Handler.java:800)
            at android.os.Handler.dispatchMessage(Handler.java:100)
            at android.os.Looper.loop(Looper.java:194)
            at android.app.ActivityThread.main(ActivityThread.java:5371)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.reflect.InvocationTargetException
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at android.view.View$1.onClick(View.java:3602)
            at android.view.View.performClick(View.java:4212)
            at android.view.View$PerformClick.run(View.java:17476)
            at android.os.Handler.handleCallback(Handler.java:800)
            at android.os.Handler.dispatchMessage(Handler.java:100)
            at android.os.Looper.loop(Looper.java:194)
            at android.app.ActivityThread.main(ActivityThread.java:5371)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at com.example.ali.projectbuddy.SignIn.Sign(SignIn.java:44)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at android.view.View$1.onClick(View.java:3602)
            at android.view.View.performClick(View.java:4212)
            at android.view.View$PerformClick.run(View.java:17476)
            at android.os.Handler.handleCallback(Handler.java:800)
            at android.os.Handler.dispatchMessage(Handler.java:100)
            at android.os.Looper.loop(Looper.java:194)
            at android.app.ActivityThread.main(ActivityThread.java:5371)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)

My sign in code SignIn.java

package com.example.ali.projectbuddy;

import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.database.Cursor;
import android.widget.Toast;


public class SignIn extends Activity {

    LoginDataBaseAdapter loginDataBaseAdapter;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sign_in);

        // create a instance of SQLite Database

    }

    public void Sign(View v)
    {

        Toast.makeText(this,"I m working",Toast.LENGTH_LONG).show();
        // get the Refferences of views
          EditText editTextUserName=(EditText)findViewById(R.id.Email);
         EditText editTextPassword=(EditText)findViewById(R.id.Password);

                // get The User name and Password
                String userName=editTextUserName.getText().toString();
                String password=editTextPassword.getText().toString();
                Toast.makeText(this,"I m working",Toast.LENGTH_LONG).show();
                // fetch the Password form database for respective user name
                String storedPassword=loginDataBaseAdapter.getSinlgeEntry(userName);

                // check if the Stored password matches with  Password entered by user
                if(password.equals(storedPassword))
                {
                    Toast.makeText(this, "Congrats: Login Successfull", Toast.LENGTH_LONG).show();
                    Intent i = new Intent(this,Welcome_Page.class);
                    startActivity(i);
                }
                else
                {

                    Toast.makeText(SignIn.this, "User Name or Password does not match", Toast.LENGTH_LONG).show();
                    Intent i = new Intent(this, SignIn.class);
                    startActivity(i);
                }
            }




/*
    @Override
    public void onDestroy() {
        super.onDestroy();
        // Close The Database
        loginDataBaseAdapter.close();
    }
*/

    public void SignUpClick(View v)
    {
        Intent i = new Intent(this, SignUp.class);
        startActivity(i);
    }
}

My activity_sign_in

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/material_blue_grey_800"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.ali.projectbuddy..Login" >
    <GridLayout
        android:layout_width="fill_parent"
        android:layout_height="300px"
        android:layout_alignParentStart="true"
        android:id="@+id/gridLayout">
        <ImageView
            android:layout_width="96dp"
            android:layout_height="143dp"
            android:id="@+id/imageView"
            android:layout_row="0"
            android:layout_column="0"
            android:background="@drawable/icon1"/>

        <TextView android:text="@string/Project"
            android:textSize="18pt"
            android:textAlignment="center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#73e0f4"
            style="@style/Base.TextAppearance.AppCompat.Title"
            android:background="@color/material_blue_grey_800"
            android:id="@+id/textView"
            android:layout_alignParentTop="true"
            android:layout_alignParentEnd="true"
            android:layout_row="0"
            android:layout_column="8" />
    </GridLayout>
    <EditText
        android:id="@+id/Email"
        android:layout_width="match_parent"
        android:layout_height="32dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="200dp"
        android:textSize="22dp"
        android:textColor="#FFFFFF"
        android:background="#07000000"
        android:ems="10"
        android:hint="Email"

        android:inputType="textEmailAddress"

        >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/Password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@id/Email"
        android:layout_marginTop="27dp"
        android:ems="10"
        android:textSize="22dp"
        android:textColor="#FFFFFF"
        android:background="#07000000"
        android:hint="Password"
        android:inputType="textWebPassword" />

    <Button
        android:id="@+id/Login"
        android:layout_width="120dp"
        android:layout_height="65dp"

        android:background="@drawable/signin"
        android:onClick="Sign"
        android:layout_below="@+id/ForgetPassword"
        android:layout_alignEnd="@+id/Password"
        android:clickable="true" />

    <TextView
        android:id="@+id/ForgetPassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#FFFFFF"
        android:text="ForgetPassword"
        android:textSize="22dp"
        android:onClick="ForgetPasswordClick"
        android:layout_below="@+id/SignUp"
        android:layout_alignParentStart="true"
        android:layout_marginTop="10dp" />

    <TextView
        android:id="@+id/SignUp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New User? Want to SignUp?"
        android:textSize="22dp"
        android:onClick="SignUpClick"
        android:layout_marginTop="40dp"
        android:textColor="#FFFFFF"
        android:layout_below="@+id/Password"
        android:layout_alignParentStart="true" />

</RelativeLayout>

My database adapter

package com.example.ali.projectbuddy;

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

public class LoginDataBaseAdapter
{
    static final String DATABASE_NAME = "login.db";
    static final int DATABASE_VERSION = 1;
    public static final int NAME_COLUMN = 1;
    public static final String KEY_NAME = "user_name";
    // TODO: Create public field for each column in your table.
    // SQL Statement to create a new database.
    static final String DATABASE_CREATE = "create table "+"User"+
            "( " +"ID"+" integer primary key autoincrement,"+ "user_name string not null, email string unique not null, password string not null, mobileNo string not null, country string not null, city string not null, location string);";
    // Variable to hold the database instance
    public  SQLiteDatabase db;
    // Context of the application using the database.
    private final Context context;
    // Database open/upgrade helper
    private DataBaseHelper dbHelper;
    public  LoginDataBaseAdapter(Context _context)
    {
        context = _context;
        dbHelper = new DataBaseHelper(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
    public  LoginDataBaseAdapter open() throws SQLException
    {
        db = dbHelper.getWritableDatabase();
        return this;
    }
    public void close()
    {
        db.close();
    }

    public  SQLiteDatabase getDatabaseInstance()
    {
        return db;
    }

    public void insertEntry(String userName, String email, String password, String mobileNo, String country, String city )
    {
        ContentValues newValues = new ContentValues();
        // Assign values for each row.
        newValues.put("user_name", userName);
        newValues.put("password",password);
        newValues.put("email",email);
        newValues.put("mobileNo",mobileNo);
        newValues.put("country",country);
        newValues.put("city",city);

        // Insert the row into your table
        db.insert("User", null, newValues);
        ///Toast.makeText(context, "Reminder Is Successfully Saved", Toast.LENGTH_LONG).show();
    }
    public int deleteEntry(String UserName)
    {
        //String id=String.valueOf(ID);
        String where="user_name=?";
        int numberOFEntriesDeleted= db.delete("User", where, new String[]{UserName}) ;
        // Toast.makeText(context, "Number fo Entry Deleted Successfully : "+numberOFEntriesDeleted, Toast.LENGTH_LONG).show();
        return numberOFEntriesDeleted;
    }
    public String getSinlgeEntry(String userName)
    {
        Cursor cursor=db.query("User", new String[]{KEY_NAME}, "user_name=?"+userName, null, null, null,null);

        if(cursor.getCount()<1) // UserName Not Exist
        {
            cursor.close();
            return "NOT EXIST";
        }
        cursor.moveToFirst();
        String password= cursor.getString(cursor.getColumnIndex("password"));
        cursor.close();
        return password;
    }
    public void  updateEntry(String userName,String password)
    {
        // Define the updated row content.
        ContentValues updatedValues = new ContentValues();
        // Assign values for each row.
        updatedValues.put("user_name", userName);
        updatedValues.put("password",password);

        String where="username = ?";
        db.update("User",updatedValues, where, new String[]{userName});
    }
}

When I try to sign in my app crashes while when I sign up it work ok. what do I have to do? now please help

Konrad Krakowiak
  • 12,285
  • 11
  • 58
  • 45
Ali Mohsan
  • 326
  • 2
  • 15

1 Answers1

2

But where you initialized loginDataBaseAdapter? i can't see in your code.

loginDataBaseAdapter=new LoginDataBaseAdapter(context);
M D
  • 47,665
  • 9
  • 93
  • 114