Hacan Champ
Hacan Champ

Reputation: 53

Could not execute method for android:on remind me

I am getting unforunately when i will click on the SignUp button on a SignUp Acivity.

Mainifest.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.champ.remindme">

<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />

<!--
     The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
     Google Maps Android API v2, but you must specify either coarse or fine
     location permissions for the 'MyLocation' functionality. 
-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".Login">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <!-- <activity android:name=".Login" /> -->
    <activity android:name=".Menu" />
    <activity android:name=".AddReminder" />
    <!--
         The API key for Google Maps-based APIs is defined as a string resource.
         (See the file "res/values/google_maps_api.xml").
         Note that the API key is linked to the encryption key used to sign the APK.
         You need a different API key for each encryption key, including the release key that is used to
         sign the APK for publishing.
         You can define the keys for the debug and release targets in src/debug/ and src/release/. 
    -->
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_maps_key" />

    <activity
        android:name=".AddEventPlace"
        android:label="@string/title_activity_add_event_place" />
    <activity android:name=".SignUp"></activity>
</application>

</manifest>

XML:

<?xml version="1.0" encoding="utf-8"?>

<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />

<!--
     The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
     Google Maps Android API v2, but you must specify either coarse or fine
     location permissions for the 'MyLocation' functionality. 
-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".Login">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <!-- <activity android:name=".Login" /> -->
    <activity android:name=".Menu" />
    <activity android:name=".AddReminder" />
    <!--
         The API key for Google Maps-based APIs is defined as a string resource.
         (See the file "res/values/google_maps_api.xml").
         Note that the API key is linked to the encryption key used to sign the APK.
         You need a different API key for each encryption key, including the release key that is used to
         sign the APK for publishing.
         You can define the keys for the debug and release targets in src/debug/ and src/release/. 
    -->
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_maps_key" />

    <activity
        android:name=".AddEventPlace"
        android:label="@string/title_activity_add_event_place" />
    <activity android:name=".SignUp"></activity>
</application>

</manifest>

Java

package com.example.champ.remindme;
import android.app.AlertDialog;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class SignUp extends AppCompatActivity {
EditText editUsername,editPassword,editEmail,editMobileNumber;
Button btnSignUpButton;
SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);
    editUsername = (EditText)findViewById(R.id.editUsername);
    editPassword = (EditText)findViewById(R.id.editPassword);
    editEmail = (EditText)findViewById(R.id.editEmail);
    editMobileNumber = (EditText)findViewById(R.id.editMobileNumber);
    btnSignUpButton = (Button)findViewById(R.id.btnSiginUpButton);
    db=openOrCreateDatabase("RemindMe", Context.MODE_PRIVATE, null);
    db.execSQL("create table IF NOT EXISTS User (Username TEXT PRIMARY KEY," +
            "Password TEXT," +
            "Email TEXT," +
            "MobileNumber Integer )");
}
public  void AddUser(View v){
    if(editUsername.length()==0||
            editPassword.length()==0||
            editEmail.length()==0||
            editMobileNumber.length()==0)
    {
        showMessage("Error", "Please enter all values");
        return;
    }
    db.execSQL("INSERT INTO User VALUES('"+editUsername+"'," +
            "'"+editPassword+ "'," +
            "'"+editEmail+"',"+
            "'"+editEmail+"',"+
            "');");

    showMessage("Success", "Record added");
}

public void showMessage(String title,String message)
{
    AlertDialog.Builder builder=new AlertDialog.Builder(this);
    builder.setCancelable(true);
    builder.setTitle(title);
    builder.setMessage(message);
    builder.show();
}

}

xml file

<?xml version="1.0" encoding="utf-8"?>
<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: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=".SignUp"
android:background="@drawable/back">

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView5"
    android:src="@drawable/remind_me_logo"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />

<EditText
    android:id="@+id/editUsername"
    android:layout_width="265dp"
    android:layout_height="wrap_content"
    android:padding="15dip"
    android:background="@drawable/username_rounded_edited_text"
    android:inputType="text"
    android:hint="Username"
    android:textAlignment="center"
    android:layout_below="@+id/imageView5"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="38dp" />
<EditText
    android:id="@+id/editPassword"
    android:layout_width="265dp"
    android:layout_height="wrap_content"
    android:padding="15dip"
    android:background="@drawable/input_felid"
    android:inputType="textVisiblePassword"
    android:hint="Password"
    android:textAlignment="center"
    android:layout_below="@+id/editUsername"
    android:layout_alignLeft="@+id/editUsername"
    android:layout_alignStart="@+id/editUsername" />
<EditText
    android:id="@+id/editConfrimPassword"
    android:layout_width="265dp"
    android:layout_height="wrap_content"
    android:padding="15dip"
    android:background="@drawable/input_felid"
    android:inputType="textVisiblePassword"
    android:hint="Confrim Password"
    android:textAlignment="center"
    android:layout_below="@+id/editPassword"
    android:layout_alignLeft="@+id/editPassword"
    android:layout_alignStart="@+id/editPassword" />
<EditText
    android:id="@+id/editEmail"
    android:layout_width="265dp"
    android:layout_height="wrap_content"
    android:padding="15dip"
    android:background="@drawable/input_felid"
    android:inputType="textWebEmailAddress"
    android:hint="Email"
    android:textAlignment="center"
    android:layout_below="@+id/editConfrimPassword"
    android:layout_centerHorizontal="true" />
<EditText
    android:id="@+id/editMobileNumber"
    android:layout_width="265dp"
    android:layout_height="wrap_content"
    android:padding="15dip"
    android:background="@drawable/pass_rounded_edited_text"
    android:inputType="number"
    android:hint="Contact Number"
    android:textAlignment="center"
    android:layout_below="@+id/editEmail"
    android:layout_centerHorizontal="true" />

<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="I agree the terms and condiations"
    android:id="@+id/checkBox"
    style="@style/ButtonText"
    android:textSize="18dp"
    android:checked="false"
    android:layout_below="@+id/editMobileNumber"
    android:layout_alignLeft="@+id/btnSiginUpButton"
    android:layout_alignStart="@+id/btnSiginUpButton" />
<Button
    android:id="@+id/btnSiginUpButton"
    android:background="@drawable/blue_botton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/signUp"
    style="@style/ButtonText"
    android:onClick="AddUser"
    android:layout_below="@+id/checkBox"
    android:layout_alignLeft="@+id/editMobileNumber"
    android:layout_alignStart="@+id/editMobileNumber"
    android:layout_alignRight="@+id/editMobileNumber"
    android:layout_alignEnd="@+id/editMobileNumber" />
   </RelativeLayout>

error

05-21 21:31:39.665 1359-1359/com.example.champ.remindme E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.champ.remindme, PID: 1359 java.lang.IllegalStateException: Could not execute method for android:onClick at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:289) at android.view.View.performClick(View.java:4780) at android.view.View$PerformClick.run(View.java:19866) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284) at android.view.View.performClick(View.java:4780)  at android.view.View$PerformClick.run(View.java:19866)  at android.os.Handler.handleCallback(Handler.java:739)  at android.os.Handler.dispatchMessage(Handler.java:95)  at android.os.Looper.loop(Looper.java:135)  at android.app.ActivityThread.main(ActivityThread.java:5254)  at java.lang.reflect.Method.invoke(Native Method)  at java.lang.reflect.Method.invoke(Method.java:372)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)  Caused by: android.database.sqlite.SQLiteException: unrecognized token: "');" (code 1): , while compiling: INSERT INTO User VALUES('android.support.v7.widget.AppCompatEditText{383b472a VFED..CL ........ 192,541-888,682 #7f0d00a6 app:id/editUsername}','android.support.v7.widget.AppCompatEditText{3568491b VFED..CL ........ 192,682-888,823 #7f0d00a7 app:id/editPassword}','android.support.v7.widget.AppCompatEditText{298f8ab8 VFED..CL ........ 192,964-888,1105 #7f0d00a9 app:id/editEmail}','android.support.v7.widget.AppCompatEditText{298f8ab8 VFED..CL ........ 192,964-888,1105 #7f0d00a9 app:id/editEmail}','); at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889) at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500) at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58) at android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31) at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1674) at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1605) at com.example.champ.remindme.SignUp.AddUser(SignUp.java:41) at java.lang.reflect.Method.invoke(Native Method)  at java.lang.reflect.Method.invoke(Method.java:372)  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)  at android.view.View.performClick(View.java:4780)  at android.view.View$PerformClick.run(View.java:19866)  at android.os.Handler.handleCallback(Handler.java:739)  at android.os.Handler.dispatchMessage(Handler.java:95)  at android.os.Looper.loop(Looper.java:135)  at android.app.ActivityThread.main(ActivityThread.java:5254)  at java.lang.reflect.Method.invoke(Native Method)  at java.lang.reflect.Method.invoke(Method.java:372)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

Upvotes: 0

Views: 140

Answers (1)

Shree Krishna
Shree Krishna

Reputation: 8562

Your editUsername, editPassword Are not Strings that you are trying to insert into, Its EditText which is clearly referencing an allocation pointer like 'android.support.v7.widget.AppCompatEditText{383b472a VFED..CL ........ 192,541-888,682 #7f0d00a6

You have to insert String instead of EditText itself so change editUsername to editUsername.getText().toString() like same as in editPassword and rest as well as per needed.

UPDATE :

Your syntax is also not correct try replacing like this,

db.execSQL("INSERT INTO User VALUES('"+editUsernameText+"'," + "'"+editPasswordText+ "'," + "'"+editEmailText+"',"+ "'"+editEmailText+"');");

OR better using parametererized query, instead of this kind of raw query like this.

Upvotes: 1

Related Questions