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