728x90
반응형
콘텍스트 메뉴는 특정 뷰를 길게 누르면 나오는 메뉴이다.
해당 메뉴도 옵션 메뉴와 거의 흡사하다. 그래서 xml로도 만들 수 있고 자바 소스로도 만들 수 있다 이번엔 두 개를 같이
만들어봤다.
일단 xml부터 보자.
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu1"
android:title="컨텍스트 메뉴1"/>
<item
android:id="@+id/menu2"
android:title="컨텍스트 메뉴2"/>
</menu>
옆에서 만들어지는 화면을 보면
이렇게 만들어졌다고 하는데 우리는 저 빨간색 부분만 만들고 이제 특정 뷰에 붙일거다.
그 부분은 자바 소스에 나와있으니 자바 소스를 보자.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView t1 = (TextView)findViewById(R.id.contextMenu);
//해당 뷰에 context menu를 붙여두는것
registerForContextMenu(t1);
}
@Override
//컨텍스트 메뉴를 만들기위해서 사용하는 메소드
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
//R.menu.context_menu를 가져와서 쓴다고 하는 부분
getMenuInflater().inflate(R.menu.context_menu,menu);
//우리가 xml로 만든거 inflate 시켜서 만듬
menu.setHeaderTitle("컨텍스트 메뉴");
//아래 부분은
menu.add(0,3,2,"메뉴3");
menu.add(0,4,3,"메뉴4");
}
@Override
//컨텍스트 메뉴가 선택 되었을때
public boolean onContextItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.menu1:
Toast.makeText(getApplicationContext(),"메뉴 1번 선택됨",Toast.LENGTH_SHORT).show();
return true;
case R.id.menu2:
Toast.makeText(getApplicationContext(),"메뉴 2번 선택됨",Toast.LENGTH_SHORT).show();
return true;
case 3:
Toast.makeText(getApplicationContext(),"메뉴 3번 선택됨",Toast.LENGTH_SHORT).show();
return true;
case 4:
Toast.makeText(getApplicationContext(),"메뉴 4번 선택됨",Toast.LENGTH_SHORT).show();
return true;
default:
return super.onContextItemSelected(item);
}
}
}
자세한 설명은 주석으로 써놨으니 확인해보길 바란다.
반응형
'코딩일기 > android studio' 카테고리의 다른 글
안드로이드 독학 16일차 : 팝업 메뉴(PopupMenu) (2) | 2021.03.31 |
---|---|
안드로이드 독학 15일차 : 컨텍스트 액션 모드(Context ActionMode) (0) | 2021.03.30 |
안드로이드 독학 14일차 : 옵션 메뉴 생성하기 (자바소스편) (0) | 2021.03.29 |
안드로이드 독학 14일차 : 메뉴 아이템 선택 이벤트(Menu item select event) (0) | 2021.03.29 |
안드로이드 독학 14일차 : 옵션 메뉴 생성하기(xml 편) (0) | 2021.03.29 |