Da geht der Code. Ich kann nur nicht herausfinden, was das Problem ist. Ich nehme nur die E-Mail und das Passwort als Eingabe vom Benutzer und versuche, in einer Tabelle namens stu zu speichern. Die Anwendung stürzt beim Klicken auf die Schaltfläche "Anmelden" ab, die mit "Absicht" auf eine nächste Seite umleitet und Werte in eine Tabelle einfügt. Es wäre sehr hilfreich, wenn ein Problem erkannt werden könnte, das zum Absturz der App führt. DankAnwendung stürzt beim Einfügen in SQLITE-Datenbank
Datenbank Helper.java
package com.example.zain.smd1;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DB_NAME = "student.db";
public static final String Table_name = "stu";
public static final String COL1 = "Id";
public static final String COL2 = "EMAIL";
public static final String COL3 = "PASS";
private static final String PASS = "PASS";
private static final String EMAIL = "EMAIL";
public DatabaseHelper(Context context) {
super(context,DB_NAME,null,1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + Table_name + " (Id INTEGER PRIMARY KEY AUTOINCREMENT, EMAIL TEXT , PASS TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS "+Table_name);
onCreate(db);
}
public boolean insertdata(String email , String pass){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues content = new ContentValues();
content.put(EMAIL,email);
content.put(PASS,pass);
long result = db.insert(Table_name,null,content);
if (result==-1){
return false;
}
else
return true;
}
}
Haupt Activity.java
package com.example.zain.smd1;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.preference.PreferenceManager;
import android.support.constraint.ConstraintLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
EditText et1,et2;
String email,pass;
RelativeLayout r1;
SharedPreferences sp;
DatabaseHelper db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et1= (EditText) findViewById(R.id.eTemail);
et2 = (EditText) findViewById(R.id.eTpassword);
r1 = (RelativeLayout) findViewById(R.id.colorChange);
}
public void login(View view){
email = et1.getText().toString();
pass = et2.getText().toString();
if(email.equals("admin")&& pass.equals("admin")){
Toast.makeText(getApplicationContext(),
"Redirecting...",Toast.LENGTH_SHORT).show();
r1.setBackgroundColor(Color.RED);
/*sp= PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor e= sp.edit();
e.putString("name",email);
e.putString("password",pass);
e.apply();*/
boolean ischecked = db.insertdata(et1.getText().toString(),et2.getText().toString());
if(ischecked==true) {
Toast.makeText(getApplicationContext(),
"Added",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(this, Main2Activity.class);
startActivity(intent);
}
}
else {
r1.setBackgroundColor(Color.GREEN);
Toast.makeText(getApplicationContext(),
"Invalid password or email",Toast.LENGTH_SHORT).show();
}
/*
String name=sp.getString("name","");
String pass= sp.getString("password","");
et1.setText(name);
et2.setText(pass);
*/
}
}
Anwendung stürzt auf in SQLite-Datenbank einfügen. Ich konnte einfach nicht herausfinden, was falsch ist
Wo ist die Ausnahme anmelden? –
Lassen Sie uns eine Ausnahme "Keine solche Spalte" erhalten? –
Die Lösung gefunden. Danke übrigens :) –