데이터베이스를 여러 번 만들고 있습니다. 데이터베이스 생성을 SQLiteOpenHelper 클래스로 이동하고 사용하려는 활동에서 인스턴스를 생성하기 만하면됩니다.
-------------------이것에서 당신은 테이블 열을 변경하여 데이터베이스 버전을 1에서 2로 변경했다는 실수를 저질렀습니다.해야 할 일은 SQLiteOpenHelper 클래스 파일에 있습니다.
public void onUpgrade(SQLiteDatabase _db, int _oldVersion, int _newVersion)
{
Log.w("TaskDBAdapter", "Upgrading from version " +_oldVersion + " to " +_newVersion + ", which will destroy all old data");
_db.execSQL("ALTER TABLE login ADD COLUMN EMAIL varchar(16)");
onCreate(_db);
}
Alter Table Query에서 Email은 새로 추가 된 열입니다. sqlite 관리자를 사용하여 데이터베이스보기를 만듭니다.
-------------------//MainActivity.java
public class MainActivity extends ActionBarActivity {
Button btlogin,btacc;
EditText emailid,passwd;
SQLiteDatabase db=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btlogin=(Button)findViewById(R.id.button1);
btacc=(Button)findViewById(R.id.button2);
emailid=(EditText)findViewById(R.id.editText1);
passwd=(EditText)findViewById(R.id.editText2);
db=openOrCreateDatabase("mydb", MODE_PRIVATE, null);
btacc.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent in=new Intent(MainActivity.this,Signin.class);
startActivity(in);
}
});
btlogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
String mail_id=emailid.getText().toString();
String password=passwd.getText().toString();
if(mail_id==null||mail_id==""||mail_id.length()<10)
{
show("Please Enter Correct mail id.");
}
else if(password==null||password==""||password.length()<6)
{
show("Please Enter Correct Password.");
}
else
{
Cursor c=db.rawQuery("select * from login where email_id='"+mail_id+"' and password='"+password+"'",null);
c.moveToFirst();
if(c.getCount()>0)
{
Intent i=new Intent(MainActivity.this,Show.class);
i.putExtra("name",mail_id );
startActivityForResult(i,500);
db.close();
finish();
}
else
show("Wrong Password or Email Id.");
}
}
private void show(String string) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), string, Toast.LENGTH_LONG).show();
}
});
}
}
//Signin.java 클래스
public class Signin extends Activity {
EditText ename,eemail,emobile,enewpwd,erepwd;
Button bok;
SQLiteDatabase db=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.signin);
ename=(EditText)findViewById(R.id.editText1);
eemail=(EditText)findViewById(R.id.editText2);
emobile=(EditText)findViewById(R.id.editText3);
enewpwd=(EditText)findViewById(R.id.editText4);
erepwd=(EditText)findViewById(R.id.editText5);
bok=(Button)findViewById(R.id.button1);
db=openOrCreateDatabase("mydb", MODE_PRIVATE, null);
db.execSQL("create table if not exists login(name varchar,email_id varchar,mobile_no varchar,password varchar,repassword varchar)");
bok.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
String name=ename.getText().toString();
String email_id=eemail.getText().toString();
String mobile_no=emobile.getText().toString();
String password=enewpwd.getText().toString();
String repassword=erepwd.getText().toString();
if(name==null||name==""||name.length()<3)
{
show("Please Enter Correct Name.");
}
else if(mobile_no==null||mobile_no==""||mobile_no.length()<10)
{
show("Please Enter Correct mobile number.");
}
else if(email_id==null||email_id==""||email_id.length()<10)
{
show("Please Enter Correct Email id.");
}
else if(password==null||password==""||password.length()<6)
{
show("Please Enter Strong Password.");
}
else if(repassword==null||repassword=="")
{
show("password mismatch.");
}
else
{
db.execSQL("insert into login values('"+name+"','"+email_id+"','"+mobile_no+"','"+password+"','"+repassword+"')");
Intent in=new Intent(Signin.this,Show.class);
in.putExtra("name", email_id);
startActivity(in);
db.close();
finish();
}
}
private void show(String str) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG).show();
}
});
}
} //show.java 클래스
public class Show extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.show);
Intent intent = getIntent();
String n = intent.getStringExtra("name");
TextView t=(TextView)findViewById(R.id.textView2);
String nn;
String[] separated = n.split("@");
nn=separated[0];
//separated[1];
t.setText(nn);
}
}
출처
https://stackoverflow.com/questions/22089840