2017-02-21 33 views
0

Я не знаю, что пошло не так, но когда я нажимаю логин, значения не будут отображаться. это мой код profile.javaНевозможно отобразить мои данные в моей базе данных SQLite [Android]

TextView vName = (TextView) findViewById(R.id.tvName); 
    TextView vEmail = (TextView) findViewById(R.id.tvEmail); 
    TextView vMobile = (TextView) findViewById(R.id.tvMobile); 

    Contact contact = new Contact(); 
    vName.setText(contact.getName().toString()); 
    vEmail.setText(contact.getEmail().toString()); 
    vMobile.setText(contact.getMobile().toString()); 

    Button btnOut = (Button) findViewById(R.id.btnOut); 
    btnOut.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent Outent = new Intent(Profile.this,MainActivity.class); 
      startActivity(Outent); 
      finish(); 
     } 
    }); 

Вот моя база данных, я попробовал сделать метод в моем DatabaseHelper.java, но до сих пор это не сработало. Мне нужна помощь профессионалов, как вы, ребята. DatabaseHelper.java

private static final String TABLE_CREATE = "create table contacts(id integer primary key not null ,"+ 
     "name text not null, email text not null, pass text not null, mobile text not null);"; 

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


@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL(TABLE_CREATE); 
    this.db =db; 
} 

public void insertContact(Contact c){ 
    db = this.getWritableDatabase(); 
    ContentValues values = new ContentValues(); 

    String query = "select * from contacts"; 
    Cursor cursor = db.rawQuery(query,null); 
    int count = cursor.getCount(); 


    values.put(COLUMN_ID,count); 
    values.put(COLUMN_NAME,c.getName()); 
    values.put(COLUMN_EMAIL,c.getEmail()); 
    values.put(COLUMN_PASS, c.getPass()); 
    values.put(COLUMN_MOBILE, c.getMobile()); 

    db.insert(TABLE_NAME,null,values); 
    db.close(); 
} 

public Cursor getAllData(){ 
    SQLiteDatabase db = this.getWritableDatabase(); 
    Cursor res = db.rawQuery("select email,name,mobile from"+TABLE_NAME,null); 
    return res; 
} 

public String searchPass(String email){ 
    db = this.getReadableDatabase(); 
    String query = "select email, pass from " + TABLE_NAME; 
    Cursor cursor = db.rawQuery(query,null); 
    String a, b; 
    b = "not found"; 
    if(cursor.moveToFirst()){ 
     do{ 
      a = cursor.getString(0); 

      if(a.equals(email)){ 
       b = cursor.getString(1); 
       break; 
      } 
     }while(cursor.moveToNext()); 
    } 
    return b; 
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    String query = "DROP TABLE IF EXISTS" + TABLE_NAME; 
    db.execSQL(query); 
    this.onCreate(db); 
} 
+3

где part для базы данных? – Fusselchen

ответ

0

Вы не зовем getAllData() в вашем Профиль деятельности.

ProfileActivity

List<Contact> contacts = db.getAllData();   
     for (Contact cn : contacts) { 
      String name = cn.getName(); 
      vName.setText(name); 
      // follow by getEmail and getMobile 
     } 

DatabaseHelper

// Getting All Data 
    public List<Contact> getAllData() { 
     List<Contact> contactList = new ArrayList<Contact>(); 
     // Select All Query 
     String selectQuery = "SELECT email,name,mobile from"+TABLE_NAME; 

     SQLiteDatabase db = this.getWritableDatabase(); 
     Cursor cursor = db.rawQuery(selectQuery, null); 

     // looping through all rows and adding to list 
     if (cursor.moveToFirst()) { 
      do { 
       Contact contact = new Contact(); 
       contact.setName((cursor.getString(0)); 
       contact.setEmail(cursor.getString(1)); 
       contact.setMobile(cursor.getString(2)); 
       contactList.add(contact); 
      } while (cursor.moveToNext()); 
     } 

     return contactList; 
    } 

Будем надеяться, что это точный и полезный.

+0

Я попробовал код, а затем эта ошибка появляется, когда я нажимаю кнопку входа. "android.database.sqlite.SQLiteException: нет такого столбца: email (код 1) :, при компиляции: SELECT email, name, mobile из контактов" – Phantom

+0

проверьте свою базу данных, убедитесь, что в вашей таблице есть столбец с именем по электронной почте –

+0

Я проверил моя база данных моя таблица имеет столбец с именем электронной почты. – Phantom