메뉴 - 만들기 소개 - 1 - (옵션 메뉴)
안드로이드 메뉴는 크게 3가지 종류로 살펴볼 수 있습니다.
"옵션 메뉴", "컨텍스트 메뉴", "팝업 메뉴"
먼저 옵션 메뉴 만들기에 대해서 소개하려고 합니다.
1. 옵션 메뉴
옵션 메뉴는 이처럼 생겼습니다.
2. 작성하기
3. 소스코드(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/new_game" android:title="게임 시작" /> <item android:id="@+id/quit" android:icon="@drawable/ic_launcher_background" android:title="종료" /> </menu>
|
menu/menu.xml
|
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout 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:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.lab.myapplication.MainActivity">
</android.support.constraint.ConstraintLayout>
|
layout/activity_main.xml
|
public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }
@Override public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; }
@Override public boolean onOptionsItemSelected(MenuItem item){
switch ( item.getItemId() ){
case R.id.new_game: Toast.makeText(this, "새 게임 선택", Toast.LENGTH_SHORT).show(); return true;
case R.id.quit: Toast.makeText(this, "취소 선택", Toast.LENGTH_SHORT).show(); return true;
default: return super.onOptionsItemSelected(item);
} // end of switch
}
}
|
MainActivity.java
|
5. 코드에 메뉴 구현하기(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"> </menu>
|
menu/menu.xml
|
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout 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:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.lab.myapplication.MainActivity">
</android.support.constraint.ConstraintLayout>
|
layout/activity_main.xml
|
public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }
@Override public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
MenuItem item1 = menu.add(0, 1, 0, "새로운 게임"); item1.setIcon(R.drawable.ic_launcher_background);
MenuItem item2 = menu.add(0, 2, 0, "취소"); item2.setAlphabeticShortcut('q');
return true; }
@Override public boolean onOptionsItemSelected(MenuItem item){
switch ( item.getItemId() ){
case 1: Toast.makeText(this, "새 게임 선택", Toast.LENGTH_SHORT).show(); return true;
case 2: Toast.makeText(this, "취소 선택", Toast.LENGTH_SHORT).show(); return true;
default: return super.onOptionsItemSelected(item);
} // end of switch
}
}
|
MainActivity.java
|
6. 참고 자료
1. https://developer.android.com/reference/android/view/Menu.html
2. [Android] 안드로이드 Toolbar menu 버튼 만들기, http://kwangsics.tistory.com/entry/Android-Toolbar-menu-%EB%B2%84%ED%8A%BC-%EB%A7%8C%EB%93%A4%EA%B8%B0