This demonstrates the use of the PopupMenu class. Clicking the button will inflate and show a popup menu from an XML resource. : Button « UI « Android






This demonstrates the use of the PopupMenu class. Clicking the button will inflate and show a popup menu from an XML resource.

 
 
/*
 * Copyright (C) 2010 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.example.android.apis.view;

import android.app.Activity;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.PopupMenu;
import android.widget.Toast;

import com.example.android.apis.R;

/**
 * This demonstrates the use of the PopupMenu class. Clicking the button will inflate and
 * show a popup menu from an XML resource.
 */
public class PopupMenu1 extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.popup_menu_1);
    }

    public void onPopupButtonClick(View button) {
        PopupMenu popup = new PopupMenu(this, button);
        popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu());

        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            public boolean onMenuItemClick(MenuItem item) {
                Toast.makeText(PopupMenu1.this, "Clicked popup menu item " + item.getTitle(),
                        Toast.LENGTH_SHORT).show();
                return true;
            }
        });

        popup.show();
    }
}

//layout/popup_menu_1.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 Google Inc.

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">
    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:onClick="onPopupButtonClick"
            android:text="popup_menu_button" />
</LinearLayout>


//menu/popup.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 Google Inc.

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/search"
          android:icon="@android:drawable/ic_menu_search"
          android:title="popup_menu_search" />
    <item android:id="@+id/add"
          android:icon="@android:drawable/ic_menu_add"
          android:title="popup_menu_add" />
    <item android:id="@+id/edit"
          android:icon="@android:drawable/ic_menu_edit"
          android:title="popup_menu_edit">
        <menu>
            <item android:id="@+id/share"
                  android:icon="@android:drawable/ic_menu_share"
                  android:title="popup_menu_share" />
        </menu>
    </item>
</menu>

   
  








Related examples in the same category

1.Add Button to Activity
2.Add Button from layout xml file
3.Add button on click listener
4.Button on click event
5.Get data from RadioButton
6.Set one of the three radio buttons to be selected by default, using android:checked = "true".
7.Load Button from layout xml file and add action listener
8.Add listener to Toggle Button
9.Layout Radio buttons with RadioGroup
10.Layout Button inside Activity
11.Using switch statement to check the RadioButton selection
12.ImageButton Demo
13.Set Button text in xml file
14.Is ToggleButton selected
15.Set Button width and height
16.Show or hide button
17.Using ImageButton
18.Clear RadioButton selection
19.Add key listener to add the new todo item when the middle D-pad button is pressed.
20.Set ToggleButton on/off text
21.Using Button to control MediaPlayer
22.Button Gallery
23.A gallery of basic controls: Button, EditText, RadioButton, Checkbox, Spinner. This example uses the light theme.
24.A list view that demonstrates the use of setEmptyView. This example alos uses a custom layout file that adds some extra buttons to the screen.
25.Adding a radio button programmatically
26.extends Button
27.Create Button
28.Create Image Button