섹션 2-2 OptionMenu
70
投稿した質問数 1
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
다른분들 질문이랑 같아요.,..
저는 실행했을 때 상단 바가 보이지도 않아요
MainActivity.java
public class MainActivity extends AppCompatActivity {
ActivityMainBinding activityMainBinding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
activityMainBinding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(activityMainBinding.getRoot());
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
//옵션 메뉴를 구성하는 메서드
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//xml 파일로부터 메뉴를 생성하는 객체
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.main_menu, menu); //res/menu/main_menu.xml 파일을 메뉴로 사용
return true;
}
//사용자가 메뉴를 선택 했을 때 호출되는 메서드
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
//사용자가 터치한 메뉴의 객체가 item으로 들어옴
//item에서 아이디 추출
int id = item.getItemId();
switch (id) {
case R.id.menu_item1:
activityMainBinding.textView.setText("메뉴항목 1을 선택했습니다");
break;
case R.id.menu_item3:
activityMainBinding.textView.setText("메뉴항목 3을 선택했습니다");
break;
case R.id.sub_item1:
activityMainBinding.textView.setText("하위 메뉴 1을 선택했습니다");
break;
case R.id.sub_item2:
activityMainBinding.textView.setText("하위 메뉴 2를 선택했습니다");
break;
}
return super.onOptionsItemSelected(item);
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textAppearance="@style/TextAppearance.AppCompat.Large" />
</LinearLayout>
main_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_item1"
android:title="메뉴항목1" />
<item
android:id="@+id/menu_item2"
android:title="메뉴 항목2" >
<menu >
<item
android:id="@+id/sub_item1"
android:title="하위 메뉴1" />
<item
android:id="@+id/sub_item2"
android:title="하위메뉴2" />
</menu>
</item>
<item
android:id="@+id/menu_item3"
android:title="메뉴 항목3" />
</menu>
대체 어디가 잘못된걸까요...
回答 1
0
안녕하세요, 인프런 AI 인턴입니다. sotech_edu_027님.
상단 바(액션바)가 보이지 않는 문제는 여러 원인으로 발생할 수 있습니다. 아래 몇 가지 확인사항을 안내드리겠습니다.
잘못된 테마 설정 확인: 액션바가 없는 테마가 설정되어 있을 수 있습니다.
styles.xml파일을 확인해보세요.Theme.AppCompat계열의 테마가 설정되어 있어야 합니다. 예를 들면:<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/primaryColor</item> <item name="colorPrimaryDark">@color/primaryDarkColor</item> <item name="colorAccent">@color/accentColor</item> </style>Activity에 잘못된 테마 적용 확인:
AndroidManifest.xml파일에서MainActivity에 할당된 테마가 액션바가 포함된 적절한 테마인지 확인해 보세요.<activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme"> ... </activity>메서드 내 요소 확인:
onCreate메서드 내에서EdgeToEdge.enable(this);를 사용하고 계시는데, 이 메서드가 시스템 UI 요소를 걸러서 표시할 수 있으니 관련 문서를 확인하여 적절히 설정되었는지 확인하세요.아예 표시되지 않을 때: 레이아웃 파일을 제대로 inflate하지 않았거나, view의 ID가 일치되지 않아서 발생할 수 있습니다. 특히 main_menu.xml 파일이 제대로 inflate되지 않는 경우 방법이 제대로 실행되지 않을 수 있습니다.
다음과 관련된 내용들을 종합하여, 아래 링크의 답변도 참고하시면 도움이 될 것입니다:
- onCreateOptionsMenu 작동 안됨. 이 게시물은
onCreateOptionsMenu설정에 있어 여러 사용자들이 겪는 문제와 그 해결 방법에 대해 다루고 있습니다.
위 방법들이 실패할 경우, 추가로 발생한 오류 메시지를 공유해 주시면 더 정확한 답변도 가능합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
부하 테스트 시 설정 관련 질문드립니다
1
9
1
HelloSpringApplication.java 클래스 실행 오류
0
5
1
build 시 에러 해결방법 공유(docker.desktop 업데이트 -> 의존성 버전 수정)
0
15
1
예외처리 3강 문의
0
17
1
챌린지 시작일 문의
0
26
0
26년2회 실기기출은 언제쯤...
0
42
2
진짜화면이랑달라서못해먹겟어요먹겟어요
0
55
1
네이버 API | '검색 - 책' API 제공 중단
0
37
2
ArticleReadService 관련 질문
0
27
1
kafka 이벤트 발행 실패 시 at-least-once를 보장하는 방법이 궁금합니다.
1
66
1
이론 공부법 요약본 버전 업데이트 문의
0
35
2
domain에 @Entity 와 Repository를 함께 둔 이유가 궁금합니다
1
45
1
해당 프로젝트를 똑같이 따라하려니 spring installer가 버전이 17부터 가능하네요.
0
23
1
Part 2 듣기전 복습하던 중, 아키텍처에 관한 질문이 있습니다.
0
44
2
테스트는 인터페이스를 대상으로 만드는것에 대해 궁금한 점이 있습니다.
0
30
1
안드로이드 조직 계정 수익 인증 관련
0
46
2
39강 질문합니다.
0
154
2
optionMenu 질문 드립니다.
0
210
1
option menu 문의 건.
0
258
1
31강 서비스 를 듣고있는데요~
0
215
1
12강 Activity Data 관련 질문
0
367
1
onCreateOptionsMenu return 값 질문 !
0
345
1
강의 자료 불일치
0
443
1
자바 안드로이드 수업 수강중인데, part3 part4 코틀린으로 수강해도 되나요?
0
282
2

