공부/안드로이드(Android)

메뉴 - 만들기 소개 - 1 - (옵션 메뉴)

도도-도윤 2017. 11. 8. 21:36

메뉴 - 만들기 소개 - 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