로그인 화면을 구성하기 위하여 loginactivity.xml(아이디/비번 에디트텍스트 와 로그인버튼)과 loginactivity.java 각각 만든 후 실행했는데,
바로 앱이 강제 종료되고 있습니다. Manifests에 loginactivity도 등록했습니다. 전체 앱은 actionbar with viewpager이고 fragment1,2,3,4로 되어 있습니다.
Fragment1 login버튼 ---> loginactivity.xml (아이디/비번을 적으면 됨)
[LoginActivity.java]
public class LoginActivity extends Activity {
EditText username;
EditText password;
Button buttonlogin;
public SQLiteDatabase sampleDB;
public String COLUMN_ID = "_id";
public String COLUMN1 = "username";
public String COLUMN2 = "password";
public String TABLE_NAME = "Androdata";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
username = (EditText) findViewById(R.id.username);
password = (EditText) findViewById(R.id.password);
buttonlogin = (Button) findViewById(R.id.buttonlogin);
sampleDB = this.openOrCreateDatabase(TABLE_NAME, MODE_PRIVATE, null);
boolean x = init(TABLE_NAME);
if (x == false) {
createDB();
insertDB();
}
buttonlogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int k = check();
if (k == 1) {
Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT).show();
Intent myIntent = new Intent("android.intent.action.CHOICE");
} else {
username.setText("");
password.setText("");
Toast.makeText(getApplicationContext(), "로그인을 실패하였습니다.", Toast.LENGTH_SHORT).show();
}
}
});
}
public boolean init(String tableName) {
Cursor cursor = sampleDB.rawQuery("select DISTINCT tbl_name from sqlite_master where tbl_name = '\"+tableName+\"'", null);
if (cursor != null) {
if(cursor.getCount()>0) {
cursor.close();
return true;
}
cursor.close();
}
return false;
}
private void insertDB() {
sampleDB.execSQL("INSERT INTO" +
TABLE_NAME +
"Values ('1', 'Androviewer', 'viewer');");
System.out.println("Inserted data successfully....");
}
private void createDB() {
sampleDB.execSQL("CREATE TABLE IF NOT EXISTS" +
TABLE_NAME + "(" + COLUMN_ID
+ " integer primary key autoincrement, " + COLUMN1
+ " text not null," + COLUMN2
+ " text not null);");
System.out.println("Database created successfully....");
}
private int check() {
String a=username.getText().toString();
String b=password.getText().toString();
//TODO Auto-generated method stub
Cursor c = sampleDB.rawQuery("SELECT username, password FROM" +
TABLE_NAME +
" where_id=1", null);
if (c != null) {
if (c.moveToFirst()) {
do {
String orgusername = c.getString(c.getColumnIndex("username"));
String orgpassword = c.getString(c.getColumnIndex("password"));
if(a.equals(orgusername)&&b.equals(orgpassword)) {
return 1;
} else {
return 0;
}
}while (c.moveToNext());
}
}
return 0;
}
}
소스 올리시는거 보다 이럴땐 에러 로그 올리시는게 도와주고자 하는 사람들에게 원인 파악하는 시간을 줄여줍니다.