컨텍스트 메뉴(Context Menu)는 리스트 등에서 특정 항목을 선택했을 때 '선택한 항목'에 대해 처리할 작업을 표시합니다.
소스
출처 - 기초부터 다지는 커니의 안드로이드
소스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | public class ContextMenuExample extends ListActivity { private ArrayList<String> list; private ArrayAdapter<String> adapter = null ; private static final int MENU_DELETE = 0 ; private void initiateList(){ list = new ArrayList<String>(); list.add( "Item 1" ); list.add( "Item 2" ); list.add( "Item 3" ); list.add( "Item 4" ); if (adapter == null ){ adapter = new ArrayAdapter<String>( this , android.R.layout.simple_list_item_1, list); } setListAdapter(adapter); registerForContextMenu(getListView()); } @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); initiateList(); Button addItemButton = (Button)findViewById(R.id.addItem); addItemButton.setOnClickListener( new OnClickListener(){ @Override public void onClick(View v) { list.add( "Item" ); adapter.notifyDataSetChanged(); } }); } // 컨텍스트 메뉴를 생성 // setHeaderTitle(), setHeaderIcon() // 컨텍스트 메뉴의 아이콘과 제목을 설정 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo){ super .onCreateContextMenu(menu, v, menuInfo); menu.setHeaderIcon(android.R.drawable.ic_dialog_info); menu.setHeaderTitle( "메뉴" ); menu.add( 0 , MENU_DELETE, Menu.NONE, "Delete" ); } // 컨텍스트 메뉴 항목 선택을 처리 @Override public boolean onContextItemSelected(MenuItem item){ // 선택한 특정 '항목'에 관한 처리를 담당 AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo(); super .onContextItemSelected(item); switch (item.getItemId()){ case MENU_DELETE: list.remove(info.position); adapter.notifyDataSetChanged(); return true ; } return false ; } } |
출처 - 기초부터 다지는 커니의 안드로이드
'프로그래밍 > Android' 카테고리의 다른 글
AlertDialog, ProgressDialog (0) | 2011.08.23 |
---|---|
다이얼로그 (0) | 2011.08.22 |
옵션메뉴 (0) | 2011.08.22 |
메뉴에 대해... (0) | 2011.08.22 |
Toast(토스트) (0) | 2011.08.22 |