gpt4 book ai didi

java - 无法执行 android :on remind me 的方法

转载 作者:行者123 更新时间:2023-12-01 09:54:12 27 4
gpt4 key购买 nike

不幸的是,当我单击注册 Activity 上的“注册”按钮时。

主节。

<?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文件

<?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>

错误

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) 

最佳答案

您的editUsernameeditPassword不是您尝试插入的Strings,它的EditText是明确引用分配指针,如 'android.support.v7.widget.AppCompatEditText{383b472a VFED..CL ........ 192,541-888,682 #7f0d00a6

您必须插入 String 而不是 EditText 本身,因此将 editUsername 更改为 editUsername.getText().toString()editPassword 中的相同,并根据需要进行休息。

更新:

你的语法也不正确,尝试像这样替换,

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

或者更好地使用参数化查询,而不是像 this 这样的原始查询.

关于java - 无法执行 android :on remind me 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37368580/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com