G Y U L O G

캘린더를 연결해서 그걸 todo로 전환하는 액션이 필요한데 이렇게 하려면 일단 레이아웃 전환을 알아야했다.

 

레이아웃을 만들고 setContentView만 바꿔줬더니 강제종료 되더라.

 

왜그럴까 하다가 레이아웃만 만들고 그에 대한 액티비티를 안만든게 보였다.

 

여기서 Empty Activity를 만들어주고 MainActivity에서 넘어가도록 intent를 설정해줬다.

goToCal.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                Intent intent = new Intent(getApplicationContext(), Calendar.class);
                startActivity(intent);
            }
        });

Activity를 만들어서 했으면 manifest파일에 자동 추가가 됐을건데 안만든 경우에는 수동으로 추가 해줘야한다.

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Todo">
        <activity android:name=".Calendar"></activity>
        <activity android:name=".MainActivity">

            <!-- <activity android:name=".MainActivity"> -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

저기 activity태그로 감싸인게 있어야 강제종료가 안되고 잘 작동한다.

 

액티비티 전환이 어떤 방식인지는 모르겠는데 전환되는 방식으로 봐서는 새로운 액티비티를 계속 꺼내는 것 같아 액티비티 종료가 가능한지 알아보았다.

 

구글링 해보니 당연히 있다.

 

구글링 검색은 android exit activity였다.

 

finish();라는 단순한 메소드 호출 하나로 끝났다.

goToMain.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });

깔끔하게 끝났다.

 

이게 기분탓이 아니었던게 만약 전환된 액티비티에서 이전 액티비티로 intent를 통해 startActivity 시키면 계속 새로운 액티비티가 위로 쌓였던 것이다. 전환 애니메이션이 다른 것을 보아 확인할 수 있었다.

"댓글, 공감 버튼 한 번씩 누르고 가주시면 큰 힘이 됩니다"

공유하기

facebook twitter kakaoTalk kakaostory naver band