2014-04-08 46 views
0

我正在創建一個簡單的應用程序來向數據庫添加名稱和密碼。 但是,當我調試畝App中的名稱和密碼字段都出現了空eventhough我已經輸入的數值在textxbox空值被插入

主類

package com.example.logintp; 

    import java.util.List; 

    import android.R.layout; 
    import android.app.Activity; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.view.View.OnClickListener; 
    import android.widget.Button; 
    import android.widget.EditText; 
    import android.widget.TextView; 

    import com.example.logintp.R.id; 

    public class MainDB extends Activity { 
     TextView name, password,show1; 
     EditText etname, etpassword; 
     Button save,show; 
     String s1, s2; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      final DbClass db = new DbClass(this); 
      name = (TextView) findViewById(R.id.name); 
      password = (TextView) findViewById(R.id.password); 
      show1=(TextView) findViewById(R.id.show); 
      etname = (EditText) findViewById(R.id.etName); 
      etpassword = (EditText) findViewById(id.etPassword); 
      save = (Button) findViewById(R.id.save); 
      show=(Button) findViewById(R.id.Display); 
    save.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View arg0) { 
        // TODO Auto-generated method stub 
        s1 = etname.getText().toString(); 
        s2 = etpassword.getText().toString(); 
        long id = db.insertData(new Login(s1, s2)); 
        if (id < 0) { 
         CommonFunctions.display(MainDB.this, "unsucessful"); 

        }else{ 
         CommonFunctions.display(MainDB.this, "sucessful"); 
        } 

       } 
      }); 


     } 


    } 

數據庫處理器CLASS

package com.example.logintp; 
import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

public class DbClass extends SQLiteOpenHelper { 

private static final String db_name = "LoginDetails"; 
private static final String table_name = "Login"; 
private static final String name = "name"; 
private static final String password = "password"; 
private static final int db_version = 1; 
private static final String Create_Table = " CREATE TABLE " + table_name 
     + "(" + name + " VARCHAR(200)," + password + " VARCHAR(200)" 
     + ") "; 

public DbClass(Context context) { 
    super(context, db_name, null, db_version); 
} 

public void onCreate(SQLiteDatabase db) { 
    // TODO Auto-generated method stub 
    db.execSQL(Create_Table); 

} 

@Override 
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { 
    // TODO Auto-generated method stub 

} 

public long insertData(Login l) { 

    SQLiteDatabase db = getWritableDatabase(); 
    ContentValues cv = new ContentValues(); 
    cv.put(name, l.getName()); 
    cv.put(password, l.getPassword()); 
    long id = db.insert(table_name, null, cv); 
    db.close(); 
    return id; 
} 

LOGIN類的getter和SETTER

package com.example.logintp; 

public class Login { 

    private String name,password; 

    public Login(){} 

    public Login(String name,String password){ 
     name=this.name; 
     password=this.password; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getPassword() { 
     return password; 
    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 

} 
package com.example.logintp; 

public class Login { 

    private String name,password; 

    public Login(){} 

    public Login(String name,String password){ 
     name=this.name; 
     password=this.password; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getPassword() { 
     return password; 
    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 

} 
+0

你在測試這個應用程序在你的模擬器?如果是,那麼檢查你的路徑'data \ data \ yourpkg \ database \ yourdatabase'數據庫是否被創建。 –

回答

4

您的構造函數因爲你的登錄類是向後分配你的字段。

public Login(String name,String password){ 
     name = this.name; 
     password = this.password; 
    } 

應該

public Login(String name,String password){ 
     this.name = name; 
     this.password = password; 
    } 

因爲這個用戶名和密碼字段將始終保持爲空。