1c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn/* 2c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * Copyright (C) 2011 The Android Open Source Project 3c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * 4c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License"); 5c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * you may not use this file except in compliance with the License. 6c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * You may obtain a copy of the License at 7c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * 8c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * http://www.apache.org/licenses/LICENSE-2.0 9c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * 10c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * Unless required by applicable law or agreed to in writing, software 11c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS, 12c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * See the License for the specific language governing permissions and 14c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * limitations under the License. 15c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn */ 16c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 17c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornpackage com.example.android.supportv4.app; 18c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 19c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport com.example.android.supportv4.R; 20c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 21c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.os.Bundle; 22c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.support.v4.app.Fragment; 23c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.support.v4.app.FragmentActivity; 24c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.util.Log; 25c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.ContextMenu; 26c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.ContextMenu.ContextMenuInfo; 27c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.LayoutInflater; 28c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.Menu; 29c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.MenuItem; 30c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.View; 31c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.ViewGroup; 32c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 33c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn/** 34c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * Demonstration of displaying a context menu from a fragment. 35c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn */ 36c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornpublic class FragmentContextMenuSupport extends FragmentActivity { 37c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 38c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn @Override 39c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn protected void onCreate(Bundle savedInstanceState) { 40c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn super.onCreate(savedInstanceState); 41c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 42c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn // Create the list fragment and add it as our sole content. 43c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn ContextMenuFragment content = new ContextMenuFragment(); 44c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn getSupportFragmentManager().beginTransaction().add( 45c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn android.R.id.content, content).commit(); 46c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 47c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 48c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public static class ContextMenuFragment extends Fragment { 49c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 50c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn @Override 51c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public View onCreateView(LayoutInflater inflater, ViewGroup container, 52c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn Bundle savedInstanceState) { 53c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn View root = inflater.inflate(R.layout.fragment_context_menu, container, false); 54c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn registerForContextMenu(root.findViewById(R.id.long_press)); 55c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn return root; 56c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 57c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 58c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn @Override 59c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 60c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn super.onCreateContextMenu(menu, v, menuInfo); 61c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn menu.add(Menu.NONE, R.id.a_item, Menu.NONE, "Menu A"); 62c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn menu.add(Menu.NONE, R.id.b_item, Menu.NONE, "Menu B"); 63c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 64c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 65c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn @Override 66c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public boolean onContextItemSelected(MenuItem item) { 67c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn switch (item.getItemId()) { 68c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn case R.id.a_item: 69c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn Log.i("ContextMenu", "Item 1a was chosen"); 70c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn return true; 71c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn case R.id.b_item: 72c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn Log.i("ContextMenu", "Item 1b was chosen"); 73c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn return true; 74c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 75c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn return super.onContextItemSelected(item); 76c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 77c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 78c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn} 79