Java 我无法重定向到Android Studio中的上一个活动

Java 我无法重定向到Android Studio中的上一个活动,java,android,database,sqlite,android-studio,Java,Android,Database,Sqlite,Android Studio,我无法将当前活动重定向到Android Studio中的主要活动。我试图将注册活动的数据插入数据库sqLite,但它不起作用 b2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String s1 = e1.getText().toString(); String s2 = e2.g

我无法将当前活动重定向到Android Studio中的主要活动。我试图将注册活动的数据插入数据库sqLite,但它不起作用

b2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String s1 = e1.getText().toString();
            String s2 = e2.getText().toString();
            String s3 = e3.getText().toString();
            String s6 = e6.getText().toString();
            if (s1.equals("") || s2.equals("") || s3.equals("") || s6.equals("")) {
                Toast.makeText(Second.this, "FILL ALL THE FIELDS", Toast.LENGTH_SHORT).show();
            } else {
                SQLiteDatabase data = openOrCreateDatabase("db1", MODE_PRIVATE, null);
                data.execSQL("CREATE TABLE IF NOT EXISTS users1(name varchar,email varchar,password varchar,phone varchar)");
                String s7 = "SELECT * FROM users1 WHERE name='" + s1 + "' and email='" + s2 + "' and password='" + s3 + "'";
                Cursor cursor = data.rawQuery(s7, null);
                if (cursor.getCount() > 0) {
                    Toast.makeText(Second.this, "already exists", Toast.LENGTH_SHORT).show();
                } else {
                    data.execSQL("insert into users1 values('" + s1 + "','" + s2 + "','" + s3 + "','" + s6 + "')");
                    Toast.makeText(Second.this, "all field filled", Toast.LENGTH_SHORT).show();
                    Intent il = new Intent(Second.this, MainActivity.class);
                    startActivity(il);
                    finish();

                }
            }
        }
    });

按要求记录日志

    04-28 18:09:44.150 26440-26440/com.example.abhinav.datal E/SQLiteLog: (1) table users1 has 3 columns but 4 values were supplied
04-28 18:09:44.150 26440-26440/com.example.abhinav.datal D/AndroidRuntime: Shutting down VM
04-28 18:09:44.151 26440-26440/com.example.abhinav.datal E/AndroidRuntime: FATAL EXCEPTION: main
                                                                           Process: com.example.abhinav.datal, PID: 26440
                                                                           android.database.sqlite.SQLiteException: table users1 has 3 columns but 4 values were supplied (code 1): , while compiling: INSERT INTO users1 VALUES('aa','aa','aa','44')
                                                                               at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
                                                                               at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:896)
                                                                               at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:507)
                                                                               at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
                                                                               at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
                                                                               at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
                                                                               at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1704)
                                                                               at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1635)
                                                                               at com.example.abhinav.datal.Second$1.onClick(Second.java:49)
                                                                               at android.view.View.performClick(View.java:5269)
                                                                               at android.view.View$PerformClick.run(View.java:21556)
                                                                               at android.os.Handler.handleCallback(Handler.java:815)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:104)
                                                                               at android.os.Looper.loop(Looper.java:207)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5776)
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
04-28 18:09:49.925 26440-26449/com.example.abhinav.datal I/System: FinalizerDaemon: finalize objects = 126
04-28 18:09:44.150 26440-26440/com.example.abhinav.datal E/SQLiteLog:(1)表users1有3列,但提供了4个值
04-28 18:09:44.150 26440-26440/com.example.abhinav.datal D/AndroidRuntime:关闭虚拟机
04-28 18:09:44.151 26440-26440/com.example.abhinav.datal E/AndroidRuntime:致命异常:main
进程:com.example.abhinav.datal,PID:26440
android.database.sqlite.SQLiteException:表users1有3列,但提供了4个值(代码1):,编译时:插入users1值('aa','aa','aa','44'))
位于android.database.sqlite.SQLiteConnection.nativePrepareStatement(本机方法)
位于android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:896)
位于android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:507)
位于android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
位于android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58)
位于android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31)
位于android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1704)
位于android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1635)
位于com.example.abhinav.datal.Second$1.onClick(Second.java:49)
在android.view.view.performClick上(view.java:5269)
在android.view.view$PerformClick.run(view.java:21556)
位于android.os.Handler.handleCallback(Handler.java:815)
位于android.os.Handler.dispatchMessage(Handler.java:104)
位于android.os.Looper.loop(Looper.java:207)
位于android.app.ActivityThread.main(ActivityThread.java:5776)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:789)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
04-28 18:09:49.925 26440-26449/com.example.abhinav.datal I/System:FinalizerDaemon:finalize objects=126

因为日志显示您的表
users1
3
列,您正在尝试向其中插入
4

以下是场景:-

1-您确实需要
3
列,并且错误地插入了
4
元素

2-您想要
4
列,但是您的表
users1
3列,您正在编写此查询

SQLiteDatabase data = openOrCreateDatabase("db1", MODE_PRIVATE, null);
                data.execSQL("CREATE TABLE IF NOT EXISTS users1(name varchar,email varchar,password varchar,phone varchar)");
如果
users1
不存在,此查询将创建四列表。 如果
users1
表存在,则不会创建任何表。
因此,您所要做的就是首先删除在设备中创建的模式。为此,您必须从设备上卸载现有应用程序,然后尝试重新安装它。

您希望使用以下语句创建表:

data.execSQL("CREATE TABLE IF NOT EXISTS users1(name varchar,email varchar,password varchar,phone varchar)");
例外情况说明:

[...] table users1 has 3 columns but 4 values were supplied [...]
如果以前创建的表
user1
只有3列,则代码不会更新它,因为它会检查表是否已存在(
CREATE table If not exists


您可以尝试删除或更改表
user1

您可以共享您的日志吗?我已经在答案中发布了日志,请检查。