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 android.os.Bundle; 20c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.util.Log; 21c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.ContextMenu; 22c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.ContextMenu.ContextMenuInfo; 23c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.LayoutInflater; 24c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.Menu; 25c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.MenuItem; 26c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.View; 27c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.ViewGroup; 28c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 29def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.fragment.app.Fragment; 30def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.fragment.app.FragmentActivity; 31def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikas 32def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport com.example.android.supportv4.R; 33def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikas 34c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn/** 35c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * Demonstration of displaying a context menu from a fragment. 36c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn */ 37c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornpublic class FragmentContextMenuSupport extends FragmentActivity { 38c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 39c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn @Override 40c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn protected void onCreate(Bundle savedInstanceState) { 41c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn super.onCreate(savedInstanceState); 42c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 43c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn // Create the list fragment and add it as our sole content. 44c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn ContextMenuFragment content = new ContextMenuFragment(); 45c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn getSupportFragmentManager().beginTransaction().add( 46c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn android.R.id.content, content).commit(); 47c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 48c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 49c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public static class ContextMenuFragment extends Fragment { 50c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 51c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn @Override 52c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public View onCreateView(LayoutInflater inflater, ViewGroup container, 53c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn Bundle savedInstanceState) { 54c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn View root = inflater.inflate(R.layout.fragment_context_menu, container, false); 55c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn registerForContextMenu(root.findViewById(R.id.long_press)); 56c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn return root; 57c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 58c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 59c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn @Override 60c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 61c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn super.onCreateContextMenu(menu, v, menuInfo); 62c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn menu.add(Menu.NONE, R.id.a_item, Menu.NONE, "Menu A"); 63c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn menu.add(Menu.NONE, R.id.b_item, Menu.NONE, "Menu B"); 64c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 65c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 66c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn @Override 67c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public boolean onContextItemSelected(MenuItem item) { 68c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn switch (item.getItemId()) { 69c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn case R.id.a_item: 70c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn Log.i("ContextMenu", "Item 1a was chosen"); 71c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn return true; 72c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn case R.id.b_item: 73c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn Log.i("ContextMenu", "Item 1b was chosen"); 74c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn return true; 75c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 76c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn return super.onContextItemSelected(item); 77c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 78c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 79c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn} 80