오늘의 메뉴 클릭 시 , (default) 미등록 화면 (TodayMenu.class)이 나오고 등록 버튼을 클릭하면
등록 화면(Register.class)이 나오고 등록 완료 버튼을 누르면
오늘의 메뉴 추천 화면(Recommend.class)이 나옵니다. 여기까지는 잘 구현된 것 같습니다.
문제는, 후에 앱을 종료했다 실행시키거나 혹은 다른 메뉴에 들어갔다 다시 오늘의 메뉴로 복귀 했을 때,
등록된 상태이므로 미등록 화면이 아닌 오늘의 메뉴 추천 화면으로 바로 나오게 하고 싶은데
이 부분에서 자꾸 오류가 발생하는 것 같습니다 ㅠㅠㅠㅠㅠㅠ
<MainActivity.java>
public void onBtnMenuClicked(View v) {
DBAdapter adb = new DBAdapter(this, DBAdapter.SQL_CREATE_MEMBER, "human");
if(adb == null) {
Intent intent = new Intent(getApplicationContext(), TodayMenu.class); // db가 null이면 미등록 화면
startActivity(intent);
}
else {
Intent intent = new Intent(getApplication(), Recommend.class); // null이 아니면 메뉴 추천화면
startActivity(intent);
}
}
<Register.java>
public class Register extends Activity implements OnClickListener {
private Button bt;
private EditText et1;
private CheckBox ch1, ch2, ch3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
bt = (Button)findViewById(R.id.btnOk);
et1 = (EditText)findViewById(R.id.txtname);
ch1 = (CheckBox)findViewById(R.id.chbstomach);
ch2 = (CheckBox)findViewById(R.id.chbappetite);
ch3 = (CheckBox)findViewById(R.id.chbintestine);
bt.setOnClickListener(this);
}
public void onClick(View v){
if(v == bt) {
String name = et1.getText().toString();
String disease = "";
if(ch1.isChecked()) {
disease = (String)ch1.getText();
} else if (ch2.isChecked()) {
disease = (String)ch2.getText();
} else if (ch3.isChecked()) {
disease = (String)ch3.getText();
}
DBAdapter adb = new DBAdapter(this, DBAdapter.SQL_CREATE_MEMBER, "human");
adb.open();
ContentValues values = new ContentValues();
values.put("name", name);
values.put("disease", disease);
adb.insertTable(values);
adb.close();
Intent intent = new Intent(this, Recommend.class);
startActivity(intent);
}
}
}
최초 실행 시 MainActivity코드를
Intent intent = new Intent(getApplicationContext(), TodayMenu.class);
startActivity(intent);로 한 후
다음 번 실행 시
if(adb == null) {
Intent intent = new Intent(getApplicationContext(), TodayMenu.class);
startActivity(intent);
}
else {
Intent intent = new Intent(getApplication(), Recommend.class);
startActivity(intent);
}
로 실행하면 원하는대로 나오는데,
문제는 if문이 들어가있는 코드로 최초 실행을 하면 앱이 자꾸 죽습니다 ㅠㅠ
문제점이나 해결 방법을 알려주신다면 정말 감사하겠습니다 ㅠㅠ