2016-03-26 16 views
1

Restoran için bir uygulama oluşturmaya çalışıyorum. Yerel bir veritabanı kurdum ve sisteme giriş yapabilmeleri için bir kullanıcı adı ve parola kaydetmek üzere hazırlanmış bir beyanname hazırladım, ancak işe yaramadı. Kullanıcı adı ve şifreler kaydedilmiyor. Aşağıda benim kodum var, eğer herhangi bir çözüm varsa, bunu takdir ediyorum.Değerleri bir veritabanına kaydetme

public class register extends AppCompatActivity { 

EditText username, password; 
Button registartion; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_register); 
} 

private Connection getConnection() 
{ 

    String host = "jdbc:mysql://jdbc.fmc.me.uk:3306/db_ben"; 
    String u = "user_ben"; 
    String p = "******"; 
    try 
    { 
     Connection con = DriverManager.getConnection(host, u, p); 
     return con; 
    } catch (SQLException e) 
    { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return null; 
} 

private boolean registerUser(){ 

    //Get username 
    EditText regUsernameBox = (EditText) findViewById(R.id.RegUsername); 
    String regUsernameStr = regUsernameBox.getText().toString(); 

    //Get password 
    EditText regPasswordBox = (EditText) findViewById(R.id.RegPassword); 
    String regPasswordStr = regPasswordBox.getText().toString(); 

    System.out.println(regUsernameStr); 
    System.out.println(regPasswordStr); 

    int i = 0; 
    Connection con = getConnection(); 
    try { 
     PreparedStatement pst = con.prepareStatement("insert into users values(?,?)"); 
     pst.setString(1, regUsernameStr); 
     pst.setString(2,regPasswordStr); 
     i = pst.executeUpdate(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
    if(i>0) 
     return true; 
    return false; 
} 

public void buttonClick() { 
    final Button registerUsers = (Button) findViewById(R.id.bRegister); 

    registerUsers.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      registerUser(); 
     } 
    }); 
} 
} 
+0

güncellemesi alır. –

+0

Hata yok, kod veriyi veritabanına kaydetmeyi bıraktığımı düşündüğüm gibi – Bjohnston

cevap

1

Hiçbir yönteminiz çağrılmıyor. Oncreate, aktivitenin görünümünü ayarlar ve sonra hiçbir şey yapmaz. Bu nedenle, teknik olarak hiçbiri olmadığından hata olmazsınız. Oluşturma düğmesinin düğme tıklama yönergelerini ayarlamanız gerekir. Sizin onCreate bu gibi görünmelidir:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_register); 
    final Button registerUsers = (Button) findViewById(R.id.bRegister); 

    registerUsers.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      registerUser(); 
     } 
    }); 
} 

Şimdi burada düğmesi bir değişken atanır ve ardından clickListener onCreate buna ayarlanır. Şimdi düğmeye tıkladığınızda bir şeyler yapardı.

+0

Bu kodu çalıştırdığımda ve emülatörde test ettiğimde, emülatörün çalışmayı durdurduğunu belirten bir hata görünüyor? – Bjohnston

+0

çünkü bir hata var ... lütfen log kedisini yapıştırın – suku

+0

Sorguda belirtilen problemi çözdüyse, lütfen cevapla işaretleyin. Gelecekte başkalarına yardım eder – suku

1

android referanslar http://developer.android.com/intl/es/reference/android/app/Activity.html#onCreate(android.os.Bundle)

ben de Duyarlı uygulamanızı tutmak için veritabanı işi yapmak için asynctask kullanması gerektiğini düşünüyorum iQuote

Eğer aktiviteyi başlatmak nerede onCreate (Bundle) 'dir. En önemlisi, burada genellikle kullanıcı arabiriminizi tanımlayan bir düzen kaynağına sahip setContentView (int) öğesini ve program arabirimiyle etkileşimde bulunmanız gereken bu kullanıcı arabirimindeki widget'ları bulmak için findViewById (int) komutunu kullanırsınız.

yüzden böyle bakmalıyız: Eğer hata ayıklama üzerinde bulgular hakkında daha fazla söyleyerek olsun hangi hataları ile

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_register); 
EditText regUsernameBox = (EditText) findViewById(R.id.RegUsername); 
EditText regPasswordBox = (EditText) findViewById(R.id.RegPassword); 
Button registerUsers = (Button) findViewById(R.id.bRegister); 

registerUsers.setOnClickListener(new View.OnClickListener() 
{ 
    @Override 
    public void onClick(View v) 
    { 
     registerUser(); 
    } 
}); 
} 
İlgili konular