2016-11-06 12 views
0
public void onSignUpClick(View v){ 
     if(v.getId() == R.id.btnRegister) 
     { 
      EditText name = (EditText)findViewById(R.id.TFname); 
      EditText email = (EditText)findViewById(R.id.TFemail); 
      EditText pass1 = (EditText)findViewById(R.id.TFpass1); 
      EditText pass2 = (EditText)findViewById(R.id.TFpass2); 

      String namestr = name.getText().toString(); 
      String emailstr = name.getText().toString(); 
      String pass1str = name.getText().toString(); 
      String pass2str = name.getText().toString(); 

      if(!pass1str.equals(pass2str)) 
      { 
       //popup msg: 
       Toast tpass = Toast.makeText(signup.this, "passwords don't match", Toast.LENGTH_LONG); 
       tpass.show(); 
      } 
      else 
      { 
       //insert the details in DB: 
       Contact c = new Contact(); 
       c.setName(namestr); 
       c.setEmail(emailstr); 
       c.setPass(pass1str); 

       helper.insertContact(c); 
      } 

     } 
    } 

私はサインフォームをsqliteデータベースにリンクしようとしています。 onSignUpClickメソッドにリンクされている登録ボタンが機能しません。このエラーを修正するための助け?サインアップボタンがsqliteデータベースにリンクされています

答えて

1

私のアプリにも同様の機能が実装されています。これを参考にすることができます。 登録アクティビティに必要な要素を追加する必要があります。

1. sqliteのアプリケーションのためのデータベースハンドラを作成します。(DatabaseHandler.java)

import java.util.ArrayList; 
import java.util.List; 
import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

public class DatabaseHandler extends SQLiteOpenHelper { 

    public DatabaseHandler(Context context, Object name, 
          Object factory, int version) { 
     // TODO Auto-generated constructor stub 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 


    String password; 
    // Database Version 
    private static final int DATABASE_VERSION = 1; 
    // Database Name 
    private static final String DATABASE_NAME = "Mydatabase.db"; 

    // Contacts table name 
    private static final String TABLE_REGISTER= "register"; 
    public static final String KEY_EMAIL_ID="email_id"; 
    public static final String KEY_MOB_NO = "mobile_number"; 
    public static final String KEY_PASSWORD = "password"; 
    public static final String CREATE_TABLE="CREATE TABLE " + TABLE_REGISTER + "(" 
      + KEY_EMAIL_ID+ " TEXT," 
      + KEY_MOB_NO + " TEXT," + KEY_PASSWORD + " TEXT " + ")"; 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     // TODO Auto-generated method stub 
     db.execSQL(CREATE_TABLE); 
    } 
    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // TODO Auto-generated method stub 
     // Drop older table if existed 
     db.execSQL("DROP TABLE IF EXISTS " + TABLE_REGISTER); 

     // Create tables again 
     onCreate(db); 
    } 

    void addregister(UserRegister registerdata) 
    // code to add the new register 
    { 
     SQLiteDatabase db = this.getWritableDatabase(); 
     ContentValues values = new ContentValues(); 
     values.put(KEY_EMAIL_ID, registerdata.getEmailId());//register email id 
     values.put(KEY_MOB_NO, registerdata.getMobNo());//register mobile no 
     values.put(KEY_PASSWORD, registerdata.getPassword()); 
     // Inserting Row 

     db.insert(TABLE_REGISTER, null, values); 
     db.close(); // Closing database connection 

    } 



    //code to get the register 
    String getregister(String username){ 
     SQLiteDatabase db = this.getReadableDatabase(); 
     //String selectquery="SELECT * FROM TABLE_REGISTER"; 
     Cursor cursor=db.query(TABLE_REGISTER,null, "email_id=?",new String[]{username},null, null, null, null); 

     if(cursor.getCount()<1){ 
      cursor.close(); 
      return "Not Exist"; 
     } 
     else if(cursor.getCount()>=1 && cursor.moveToFirst()){ 

      password = cursor.getString(cursor.getColumnIndex(KEY_PASSWORD)); 
      cursor.close(); 

     } 
     return password; 


    } 


    public String getDatabaseName() { 
     return DATABASE_NAME; 
    } 


    public static String getTableContacts() { 
     return TABLE_REGISTER; 
    } 

    public static int getDatabaseVersion() { 
     return DATABASE_VERSION; 
    } 

} 

2.

公共クラスUserRegister {

//private variables 

    String email_id; 
    String mobile_number; 
    String password; 




    // Empty constructor 
    public UserRegister(){} 

    // constructor 
    public UserRegister(String email_id,String mobile_number, String password){ 
    this.email_id=email_id; 
    this.mobile_number=mobile_number; 
    this.password = password; 
    } 

    public String getEmailId() { 
    return email_id; 
    } 

    public void setEmailId(String email_id){ 
    this.email_id = email_id; 
    } 

    public String getMobNo() { 
    // TODO Auto-generated method stub 
    return mobile_number; 
    } 

    public void setMobNo(String mobile_number){ 
    this.mobile_number=mobile_number; 
    } 

public String getPassword() { 
    return password; 
    } 

public void setPassword(String password) { 
    this.password = password; 
    } 
をモーダルクラスUserRegisterを作成します。

}

3.Create RegistrationActivity同様

public class Registration_Activity extends AppCompatActivity { 

    EditText reg_email,reg_phone,reg_password; 
    Button reg_button; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.register); 
     final DatabaseHandler db = new DatabaseHandler(this, null, null, 2); 
     reg_email = (EditText)findViewById(R.id.reg_email); 
     reg_phone = (EditText)findViewById(R.id.reg_phone); 
     reg_password = (EditText) findViewById(R.id.reg_password); 
     reg_button = (Button)findViewById(R.id.reg_button); 
     final String emailPattern = "[a-zA-Z0-9._-][email protected][a-z]+\\.+[a-z]+"; 

     reg_button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String email = reg_email.getText().toString(); 
       String phone = reg_phone.getText().toString(); 
       String password = reg_password.getText().toString(); 
       if (email.matches(emailPattern)) { 
        DatabaseHandler db = new DatabaseHandler(Registration_Activity.this, null, null, 2); 
        UserRegister userRegister = new UserRegister(); 
        userRegister.setEmailId(email); 
        userRegister.setMobNo(phone); 
        userRegister.setPassword(password); 
        db.addregister(userRegister); 
        Toast.makeText(getApplicationContext(), "Account Created", Toast.LENGTH_SHORT).show(); 
        Intent intent = new Intent(Registration_Activity.this, Login_Activity.class); 
        startActivity(intent); 
        Registration_Activity.this.finish(); 
       } 
       else 
       { 
        Toast.makeText(getApplicationContext(),"Enter a valid Email Address",Toast.LENGTH_SHORT).show(); 
       } 

      } 
     }); 

    } 
} 

4. Login_Activity

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.text.Html; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 

public class Login_Activity extends AppCompatActivity { 

    TextView signup; 
    String email,password; 
    EditText log_username,log_password; 
    Button login_button; 
    DatabaseHandler db; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.login); 
     signup = (TextView)findViewById(R.id.signup); 
     String htmlString="<u>Signup</u>"; 
     signup.setText(Html.fromHtml(htmlString)); 
     log_username = (EditText)findViewById(R.id.log_username); 
     log_password = (EditText)findViewById(R.id.log_password); 
     login_button = (Button)findViewById(R.id.login_button); 

     login_button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       db=new DatabaseHandler(Login_Activity.this, null, null, 2); 
       email = log_username.getText().toString(); 
       password = log_password.getText().toString(); 
       String StoredPassword =db.getregister(email); 
       if(password.equals(StoredPassword)){ 

        Toast.makeText(getApplicationContext(),"Login Successfully", Toast.LENGTH_LONG).show(); 
        Intent intent = new Intent(Login_Activity.this,VideoActivity.class); 
        startActivity(intent); 
        Login_Activity.this.finish(); 

       } 
       else{ 
        Toast.makeText(getApplicationContext(), "Username/Password incorrect", Toast.LENGTH_LONG).show(); 
        log_username.setText(""); 
        log_password.setText(""); 
       } 



      } 
     }); 




     signup.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(Login_Activity.this,Registration_Activity.class); 
       startActivity(intent); 
       Login_Activity.this.finish(); 
      } 
     }); 

    } 
} 
+0

あなたはログインする必要がある場合は、データベースと何が入っているから、値を比較する必要があります。コードサンプルが必要な場合は、私に知らせてください。あなたが必要であればコードを共有します – vishnumm93

+0

@ハサンコード – vishnumm93

+0

を更新しました@ハサン私はあなたのためにエラーを知っていませんが、コードは私のために完全に機能します。 – vishnumm93

関連する問題