260609 - Android studio에서 switch문을 쓰려는 큰 꿈

LIHA·약 19시간 전
post-thumbnail

결론부터 말하자면 저 꿈은 좌절되었다

경위: MainActivity.java에서 switch문을 쓰고 싶었다.

    public void onButtonClick(View view) {
        TextView text1 = (TextView) findViewById(R.id.text1);
        switch(view.getId()) {
            case R.id.button1:
                text1.setText("hello");
                break;

            case R.id.button2:
                text1.setText("world");
                break;
        }
    }

위 코드를 썼더니 R.id.button1과 R.id.button2에 자꾸 빨간줄이 그어지는 것이다. Gemini에게 알아본 결과 결론은 사용할 수 없었다. gradle.properties에 android.nonFinalResIds=false 를 추가해도 소용 없었다.

=> 이유는 R.id.button1 이런 식으로 쓰는건 리소스 ID가 상수라는 가정 하에 쓰는건데, Android studio 버전이 올라가면서 구글이 리소스 ID를 무조건 non-final로 쓰도록 강제했기 때문.
=> 또다른 이유는, switch문을 버리기 위해서.
=> 이 모든 것의 궁극적인 이유는 빌드 속도를 향상시키기 위해.

profile
갑자기 왜 춤춰?

0개의 댓글