간단한 AR 앱을 만들고 있는데요..
액티비티/레이아웃 구조가 아래와 같습니다.
MainActivity
|
activity_main.xml (증강현실 스크린 뷰 - GLSurfaceView 사용)
activity_login.xml (로그인 화면)
activity_register.xml (회원가입 화면)
- activity_main.xml에 '로그인' 버튼 구현
- activity_login.xml과 activity_register.xml에 '뒤로가기' 버튼 구현
- activity_register.xml에서 뒤로가기 -> activity.login.xml로 이동
- activity_login.xml에서 뒤로가기 -> MainActivity로 이동
그래서 로그인 버튼과 뒤로가기 버튼을 MainActivity.java 파일에서 코드로 만들려고 하는데...다른 경우는 문제가 없는 반면 로그인 화면에서 MainActivity로 '뒤로가기' 할 때는 GLSurfaceView가 로딩이 안 되는 탓인지 검은 화면만 나옵니다. 아래와 같이 'position' 변수와 setContentView()만을 이용하여 화면 전환을 구현한 것이 문제인 것 같습니다.
특정 버튼 클릭 시 MainActivity 자체를 다시 로딩하려면 어떻게 처리하는 게 좋을까요..
MainActivty.java
// 로그인 버튼 클릭 시의 이벤트 처리
public void onClickLogin(View v) {
if (position.equals("activity_main")) {
// 'position' 변수의 초기값: "activity_main"
setContentView(R.layout.activity_login);
position = "activity_login";
}
}
// 회원가입 텍스트 클릭 시의 이벤트 처리
public void onClickRegister(View v) {
if (position.equals("activity_login")) {
setContentView(R.layout.activity_register);
position = "activity_register";
}
}
// 로그인 화면에서 뒤로가기 버튼 클릭 시의 이벤트 처리: 메인 액티비티로 이동 <-- 문제 발생
public void backFromLogin(View v) {
if (position.equals("activity_login")) {
setContentView(R.layout.activity_main);
position = "activity_main";
}
}
// 회원가입 화면에서 뒤로가기 버튼 클릭 시의 이벤트 처리: 로그인 화면으로 이동
public void backFromRegister(View v) {
if (position.equals("activity_register")) {
setContentView(R.layout.activity_login);
position = "activity_login";
}
}
activity_main.xml
...
<android.opengl.GLSurfaceView
android:id="@+id/surfaceview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="top" />
<Button
android:id="@+id/btnLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClickLogin"
android:text="로그인" />
...
activity_login.xml
...
<ImageButton
android:id="@+id/backFromLoginBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:onClick="backFromLogin"
app:srcCompat="@android:drawable/ic_menu_revert" />
...
activity_register.xml
...
<ImageButton
android:id="@+id/backFromRegisterBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:onClick="backFromRegister"
app:srcCompat="@android:drawable/ic_menu_revert" />
...