2017-10-15 2 views
-3

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

+1

Wo ist die Ausnahme anmelden? –

+0

Lassen Sie uns eine Ausnahme "Keine solche Spalte" erhalten? –

+0

Die Lösung gefunden. Danke übrigens :) –

Antwort

0

Versuchen Sie, die vorhandene Anwendung von Ihrem Debugging-Gerät zu deinstallieren und dann erneut zu installieren. Manchmal, wenn Sie die Struktur Ihrer Tabelle nach der Installation ändern und erneut installieren, erstellt sie keine neue Tabelle.

0

Sie sollten versuchen, diese ...

DatabaseHelper db; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    //add this line in your code.. 
    db = new DatabaseHelper(this); 

    et1= (EditText) findViewById(R.id.eTemail); 

    et2 = (EditText) findViewById(R.id.eTpassword); 

    r1 = (RelativeLayout) findViewById(R.id.colorChange); 
} 
+0

Das hat geholfen. Danke –

+0

willkommen !! @ZainAfzal – vivek

Verwandte Themen