有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java当我去另一个活动时,我的应用程序不断崩溃

我正在尝试制作一个名为“moviesinfo”的应用程序,其中我有一个登录页面,带有注册和忘记密码选项。当我尝试登录时,应用程序崩溃。我也不知道注册页面上输入的数据是否存储在数据库中

这是我的mainactivity.java

package com.example.moviesinfo;

import 安卓.content.Intent;
import 安卓.database.Cursor;
import 安卓.database.sqlite.SQLiteDatabase;
import 安卓.database.sqlite.SQLiteOpenHelper;
import 安卓.os.Bundle;
import 安卓.support.v7.app.AppCompatActivity;
import 安卓.view.View;
import 安卓.widget.Button;
import 安卓.widget.EditText;
import 安卓.widget.TextView;
import 安卓.widget.Toast;

public class MainActivity extends AppCompatActivity {

    SQLiteDatabase db;
    SQLiteOpenHelper openHelper;
    private EditText user;
    private EditText password;
    private Button btn;
    private Button btn2;
    private Button forgot;
    Cursor cursor;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        forgot=findViewById(R.id.forgot);
        btn2=(Button) findViewById(R.id.signup);
        user= (EditText) findViewById(R.id.username);
        password = (EditText) findViewById(R.id.password);
        btn = (Button) findViewById(R.id.login);
        openHelper= new DatabaseHelper(this);
        db=openHelper.getReadableDatabase();

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String username1= user.getText().toString();
                String password1= password.getText().toString();

                cursor = db.rawQuery("SELECT * FROM " +DatabaseHelper.TABLENAME + " WHERE " + DatabaseHelper.COL2 + "=? AND " + DatabaseHelper.COL3+"=?", new String[]{username1,password1});

                if (cursor!=null){
                    if (cursor.getCount()>0){
                        cursor.moveToNext();
                        Intent intent = new Intent(MainActivity.this,listmenu.class);
                        startActivity(intent);
                        //Toast.makeText(getApplicationContext(),"Login Successful", Toast.LENGTH_SHORT).show();//
                    }else{
                        Toast.makeText(getApplicationContext(),"Error" , Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });


        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                sign_up();
            }
        });

        forgot.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                forgot();
            }
        });
    }


    private void sign_up()
    {
        Intent intent= new Intent(MainActivity.this, signup.class);
        startActivity(intent);
    }

    private void forgot()
    {
        Intent intent= new Intent(MainActivity.this, forgot.class);
        startActivity(intent);
    }
}

这是signup.java

package com.example.moviesinfo;

import 安卓.content.ContentValues;
import 安卓.content.Intent;
import 安卓.database.sqlite.SQLiteDatabase;
import 安卓.database.sqlite.SQLiteOpenHelper;
import 安卓.support.v7.app.AppCompatActivity;
import 安卓.os.Bundle;
import 安卓.view.View;
import 安卓.widget.Button;
import 安卓.widget.EditText;
import 安卓.widget.Toast;
import java.lang.String;
import java.util.ArrayList;

public class signup extends AppCompatActivity {
    SQLiteOpenHelper openHelper;
    DatabaseHelper db;
    SQLiteDatabase db1;
    public String uname = "";
    public String pwd = "";
    public ArrayList<String> cpwd = new ArrayList<String>();

    EditText e1, e2, e3;
    Button b1,b2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_signup);
        openHelper= new DatabaseHelper(this);
        e1 = (EditText) findViewById(R.id.username);
        e2 = (EditText) findViewById(R.id.password);
        e3 = (EditText) findViewById(R.id.cpwd);
        b1 = (Button) findViewById(R.id.save);
        b2 = (Button) findViewById(R.id.login2);


        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            db1=openHelper.getWritableDatabase();
            String username =e1.getText().toString();
                String password =e2.getText().toString();
                String confirm_password =e3.getText().toString();
                insert_data(username,password,confirm_password);
            }
        });

        b2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(signup.this,MainActivity.class);
                startActivity(intent);
            }
        });


    }

    public void insert_data(String username, String password, String confirm_password)
    {
        ContentValues contentValues = new ContentValues();
        contentValues.put(DatabaseHelper.COL2, username);
        contentValues.put(DatabaseHelper.COL3, password);
        contentValues.put(DatabaseHelper.COL4, confirm_password);
        long id=db1.insert(DatabaseHelper.TABLENAME, null, contentValues);
    }
}

这是DatabseHelper.java

package com.example.moviesinfo;

import com.example.moviesinfo.signup;

import 安卓.content.ContentValues;
import 安卓.content.Context;
import 安卓.content.Intent;
import 安卓.database.sqlite.SQLiteDatabase;
import 安卓.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

    public static final String DATABASE_NAME="userdetails.db";
    public static final String TABLENAME="user details";
    public static final String COL1="id";
    public static final String COL2="username";
    public static final String COL3="password";
    public static final String COL4="confirmpassword";



    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null,1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE " + "TABLENAME(ID INTEGER PRIMARY KEY AUTOINCREMENT,USERNAME TEXT,PASSWORD TEXT,CONFIRMPASSWORD TEXT)");

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " +TABLENAME);
        onCreate(db);
    }

}

我希望当我点击登录按钮时,它会跳转到下一个活动,从数据库中检查登录详细信息


共 (0) 个答案