switch문을 if else문으로 바꾸자.
if-else 문에서는
조건식으로 평가하는 값의 타입이 제한되지 않기 때문에
변수나 리턴값 등 런타임에 결정되는 값도 사용할 수 있다.
쉽게 switch보단 덜 까다롭다고 하겠다.
도움이 되고자 수정 전/후 코드를 첨부한다.
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.tab1:
Toast.makeText(getApplicationContext(), "첫 번째 탭 선택됨", Toast.LENGTH_LONG).show();
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, fragment1).commit();
return true;
case R.id.tab2:
Toast.makeText(getApplicationContext(), "두 번째 탭 선택됨", Toast.LENGTH_LONG).show();
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, fragment2).commit();
return true;
case R.id.tab3:
Toast.makeText(getApplicationContext(), "세 번째 탭 선택됨", Toast.LENGTH_LONG).show();
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, fragment3).commit();
return true;
}
return false;
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
int itemId = item.getItemId();
if (itemId == R.id.tab1) {
Toast.makeText(getApplicationContext(), "첫 번째 탭 선택됨", Toast.LENGTH_LONG).show();
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, fragment1).commit();
return true;
} else if (itemId == R.id.tab2) {
Toast.makeText(getApplicationContext(), "두 번째 탭 선택됨", Toast.LENGTH_LONG).show();
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, fragment2).commit();
return true;
} else if (itemId == R.id.tab3) {
Toast.makeText(getApplicationContext(), "세 번째 탭 선택됨", Toast.LENGTH_LONG).show();
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, fragment3).commit();
return true;
}
return false;
}
'IDE > Android Studio' 카테고리의 다른 글
Failed to resolve: lib.kingja.switchbutton:switchbutton:1.1.8 (0) | 2023.06.08 |
---|---|
Failed to resolve: com.github.PhilJay:MPAndroidChart:v3.1.0 (0) | 2023.06.08 |
Android Stuido 안드로이드 스튜디오 드라이브경로바꾸기, C드라이브 용량확보하기 (1) | 2023.04.14 |
Android Studio 자동정렬 (0) | 2023.03.23 |
Android 프로젝트명 변경하기 (0) | 2023.03.22 |