亲宝软件园·资讯

展开

Android Textview添加菜单项

西里小诸葛 人气:0

背景描述:

界面上有一个Textview和一个Button,当我们点击Textview时会弹出一个菜单,然后我们选择一个选项,最后点击按钮的时候,就会根据选择的菜单项执行相应的函数。

解决办法

总共分三个步骤:

1.首先在res文件夹下创建menu文件夹,然后创建菜单文件main.xml

2.在Activity中添加菜单,具体怎么添加,先定义菜单按钮 PopupMenu,然后重写菜单监听事件

3.最后给需要弹出菜单的控件(如Textview添加属性android:onClick=“menuClick”)

具体步骤:

1.创建菜单文件

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/to_detail"
        android:title="细节增强"/>
    <item android:id="@+id/to_fudiao"
        android:title="浮雕效果"/>
    <item android:id="@+id/to_mosic"
        android:title="马赛克效果"/>
    <item android:id="@+id/to_frost"
        android:title="点状图"/>
    <item android:id="@+id/to_spread"
        android:title="毛玻璃"/>
</menu>

2.给activity添加菜单,重写菜单监听事件

创建弹出菜单变量

  private PopupMenu popupMenu;//定义菜单按钮

重写菜单监听事件

    //重写菜单监听事件
    public void menuClick(View view){
        popupMenu = new PopupMenu(this,view);
        getMenuInflater().inflate(R.menu.main,popupMenu.getMenu());
        popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                switch (item.getItemId()){
                    case R.id.to_detail:
                        flag.setText("细节增强");
                        break;
                    case R.id.to_fudiao:
                        flag.setText("浮雕效果");
                        break;
                    case R.id.to_mosic:
                        flag.setText("马赛克");
                        break;
                    case R.id.to_frost:
                        flag.setText("点状图");
                        break;
                    case R.id.to_spread:
                        flag.setText("毛玻璃");
                        break;
                }
                return true;
            }
        });
        popupMenu.show();
    }

3. 给控件添加菜单响应属性

 总结

加载全部内容

相关教程
猜你喜欢
用户评论