2017-10-15 9 views
-3

Y va le code. Je ne peux pas comprendre quel est le problème. Je prends juste l'email et le mot de passe comme entrée de l'utilisateur et essaye de stocker dans une table nommée stu. L'application se bloque en cliquant sur le bouton de connexion qui redirige vers une page suivante en utilisant "intention" et en insérant des valeurs dans une table. Il serait d'une grande aide si le problème pouvait être identifié comme cause de plantage de l'application. MerciL'application se bloque lors de l'insertion dans la base de données SQLITE

Database 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; 

} 
} 

principal 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); 
    */ 
    } 



    } 

application se bloque sur l'insertion dans la base de données SQLite. Je ne pouvais pas comprendre ce qui ne va pas

+1

Où est le journal exception? –

+0

Soyons vous obtenez une exception "Aucune colonne"? –

+0

Trouvé la solution. Merci btw :) –

Répondre

0

Essayez de désinstaller l'application existante de votre dispositif de débogage, puis installez-le à nouveau. Parfois, lorsque vous modifiez la structure de votre table après l'avoir installée et que vous l'installez de nouveau, elle ne crée pas de nouvelle table.

0

vous devriez essayer ...

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

Cela a aidé. Thankyou –

+0

bienvenue !! @ZainAfzal – vivek