Reputation: 53
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
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