19c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn/* 29c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn * Copyright (C) 2010 The Android Open Source Project 39c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn * 49c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License"); 59c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn * you may not use this file except in compliance with the License. 69c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn * You may obtain a copy of the License at 79c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn * 89c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn * http://www.apache.org/licenses/LICENSE-2.0 99c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn * 109c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn * Unless required by applicable law or agreed to in writing, software 119c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS, 129c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn * See the License for the specific language governing permissions and 149c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn * limitations under the License. 159c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn */ 169c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn 179c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackbornpackage com.example.android.apis.app; 189c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn 199c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackbornimport com.example.android.apis.R; 209c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn 219c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackbornimport android.app.Activity; 229c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackbornimport android.app.Fragment; 239c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackbornimport android.os.Bundle; 249c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackbornimport android.util.Log; 259c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackbornimport android.view.ContextMenu; 269c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackbornimport android.view.LayoutInflater; 279c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackbornimport android.view.Menu; 289c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackbornimport android.view.MenuItem; 299c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackbornimport android.view.View; 309c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackbornimport android.view.ViewGroup; 319c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackbornimport android.view.ContextMenu.ContextMenuInfo; 32f3f7c5f775167cf4fbd28171abd54b0436664965Dianne Hackbornimport android.widget.Toast; 339c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn 349c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn/** 359c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn * Demonstration of displaying a context menu from a fragment. 369c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn */ 379c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackbornpublic class FragmentContextMenu extends Activity { 3845ae9c3def3e67e866172b4dd8ae10cf759f77abAndrew Stadler 399c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn @Override 409c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn protected void onCreate(Bundle savedInstanceState) { 419c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn super.onCreate(savedInstanceState); 4245ae9c3def3e67e866172b4dd8ae10cf759f77abAndrew Stadler 439c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn // Create the list fragment and add it as our sole content. 449c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn ContextMenuFragment content = new ContextMenuFragment(); 450d11c9c34501a9a9dedee1092fd63af218dc28c8Dianne Hackborn getFragmentManager().beginTransaction().add(android.R.id.content, content).commit(); 469c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn } 4745ae9c3def3e67e866172b4dd8ae10cf759f77abAndrew Stadler 489c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn public static class ContextMenuFragment extends Fragment { 4945ae9c3def3e67e866172b4dd8ae10cf759f77abAndrew Stadler 509c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn @Override 519c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn public View onCreateView(LayoutInflater inflater, ViewGroup container, 529c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn Bundle savedInstanceState) { 539c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn View root = inflater.inflate(R.layout.fragment_context_menu, container, false); 549c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn registerForContextMenu(root.findViewById(R.id.long_press)); 559c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn return root; 569c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn } 579c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn 589c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn @Override 599c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 609c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn super.onCreateContextMenu(menu, v, menuInfo); 619c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn menu.add(Menu.NONE, R.id.a_item, Menu.NONE, "Menu A"); 629c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn menu.add(Menu.NONE, R.id.b_item, Menu.NONE, "Menu B"); 639c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn } 6445ae9c3def3e67e866172b4dd8ae10cf759f77abAndrew Stadler 659c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn @Override 669c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn public boolean onContextItemSelected(MenuItem item) { 679c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn switch (item.getItemId()) { 689c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn case R.id.a_item: 69f3f7c5f775167cf4fbd28171abd54b0436664965Dianne Hackborn Toast.makeText(getActivity(), "Item 1a was chosen", Toast.LENGTH_SHORT).show(); 709c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn return true; 719c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn case R.id.b_item: 72f3f7c5f775167cf4fbd28171abd54b0436664965Dianne Hackborn Toast.makeText(getActivity(), "Item 1b was chosen", Toast.LENGTH_SHORT).show(); 739c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn return true; 749c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn } 759c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn return super.onContextItemSelected(item); 769c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn } 779c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn } 789c5d122a988635933e1b26dbbf2d88ffa2e880f4Dianne Hackborn} 79