엑션바의 타이틀을 각각의 엑티비티마다 세팅해줄수 있다.
엑션바를 편집하려면 onCreate에 getSupportActionBar를 사용해야 한다.
getSupportActionBar().setTitle("직원정보");
# 연봉정보라는 타이틀을 엑션바에 넣었다.
그 후 Show context Actions를 클릭한 뒤 Extract string resource를 선택하여 스트링 리소스를 만든다.
리소스네임을 설정하여 다양한 상황에 대처할수 있도록 만든다.
위의 과정을 거치면 자동으로 변환된다.
getSupportActionBar().setTitle(R.string.Employee_Title);
엑션바의 타이틀이 바뀐것을 확인할수있다.
이제 엑션바에 백버튼 기능을 넣어보자.
먼저 엑션바에 백버튼을 세팅하기 위해 setDisplayHomeAsUpEnabled로 해당 기능을 활성화한다.
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
그 후 onCreate 바깥쪽에 onSupportNavigateUp을 오버라이딩 하여
생성된 백 버튼을 눌렀을때 실행되는 행동을 작성한다.
@Override
public boolean onSupportNavigateUp() {
// 1. finish를 이용
// finish();
// 기계의 백버튼 눌렀을때 호출되는 콜백함수이용
onBackPressed();
return true;
}
# finish함수를 이용해도 되고 onBackPressed함수를 사용해도 된다.
엑션바에 백버튼이 생성되었고 해당 버튼을 누르면 뒤로 가지는것을 볼수있다.
엑션바에 메뉴를 만들어 기능을 넣을수도 있다.
먼저 res에 menu라는 이름의 새로운 디렉토리를 만든 후, 그 안에 menu 타입의 새로운 리소스 파일을 만든다.
그럼 새로운 xml파일이 생성되는데 여기에 Menu item을 넣어 메뉴를 구성한다.
# showAsAction으로 메뉴가 어떻게 나올지 정할수있다.
# Add 메뉴는 showAsAction를 Always로 설정하고 아이콘을 지정해서 엑션바에 +모양으로 항시 나오게 했다.
# About 메뉴는 가장자리의 메뉴버튼을 눌러야 볼수있도록 Never로 설정했다.
이제 메인에서 onCreateOptionsMenu로 메뉴를 연결한다.
// xml로 만든 메뉴를 엑티비티의 화면에 나타나게 해주는 함수
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
그 후 if문을 화용해서 메뉴중 어떤 메뉴를 누르면 어떻게 행동하는지 설정한다.
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
int itemId = item.getItemId();
if(itemId == R.id.menuAdd){
Intent intent = new Intent(MainActivity.this, AddActivity.class);
startActivity(intent);
} else if (itemId == R.id.menuAbout){
// TODO: 클릭했을때 하고싶은일 코드 작성
}
return super.onOptionsItemSelected(item);
}
잘 나오는것을 볼수있다.
'Android' 카테고리의 다른 글
[Android] 글라이드(glide) 이용한 사진 가져오기 (0) | 2022.07.20 |
---|---|
[Android] 네트워크에서 데이터 가져오기 및 수정 (작성중) (0) | 2022.07.19 |
[Android] EditText에서 글자를 바꿀 때 마다 기능 실행: TextWatcher, addTextChangedListener (0) | 2022.07.18 |
[Android] 리사이클러 뷰 (RecyclerView) + Vector Asset, 클래스 Intent: Serializable (0) | 2022.07.14 |
[Android] SQLite3 데이터 활용: CRUD 작업, SQLiteDatabase, do, while (0) | 2022.07.14 |
댓글