操作栏上的弹出窗口 [英] Pop-up window from actionbar

查看:87
本文介绍了操作栏上的弹出窗口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试通过单击操作栏中的按钮在Android中创建一个弹出窗口.像这样:

I'm trying to create a pop-up window in Android by clicking button in action bar. Like this:

http://pix.am/yo2E.jpg

在我的想法中,我在一个容器中实现了两个片段,其中1(弹出窗口)处于View.GONE状态,当我单击按钮时便可见.

In my idea I realised it with two fragments in one container, where 1 (pop-up) is in View.GONE state and becomes visible when I click button.

有没有更简单的方法来解决我的问题?

Is there an easier way to solve my problem?

推荐答案

基本上,您可以用很少的代码来完成此操作,最终您将像这样

但是如果要自定义,则必须设计自定义布局

but if you want to customize you have to design a custom layout

要实现这一目标,请创建一个如下所示的xml菜单文件

To Achieve that, create a xml menu file like below

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/search"
        android:icon="@android:drawable/ic_menu_search"
        android:title="Search"/>
    <item
        android:id="@+id/add"
        android:icon="@android:drawable/ic_menu_add"
        android:title="Add"/>
    <item
        android:id="@+id/edit"
        android:icon="@android:drawable/ic_menu_edit"
        android:title="Edit">
        <menu>
            <item
                android:id="@+id/share"
                android:icon="@android:drawable/ic_menu_share"
                android:title="Share"/>
        </menu>
    </item>

</menu>

现在,编写PopupMenu1 Activity.java文件

Now, write PopupMenu1 Activity.java file

package com.example.popuptest;

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

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();
    }
}

这篇关于操作栏上的弹出窗口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆