Я не поддерживаю сеанс прямо сейчас для пользователей, но когда я его регистрирую, он работает нормально, и он переходит к следующему действию, но когда я вхожу в него, он вызывает сбой приложения, а если данные неверны даже тогда он должен показывать тост, но его не происходит. Это список ошибокСбой приложения при входе в систему
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)
Мой знак в коде 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);
}
}
Мой 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>
Мой адаптер базы данных
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});
}
}
Когда я попытайтесь войти в мое приложение, когда я зарегистрирую его, работаю нормально. Что мне нужно сделать? теперь, пожалуйста, помогите
Что такое код в строке 44 в операции входа в систему? –
его fuction of Logindatabaseadapter –