android – 像ContextMenu一样获取PopupMenu的上下文

所以我的ExpandableListView具有定义如下的组行:

group_row.xml

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

    <TextView
        android:id="@+id/GroupName"
        style="@style/ListViewRowStyle"
        android:paddingLeft="40dp"
        android:textSize="18sp" >
    </TextView>

    <ImageView
        android:id="@+id/Menu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginTop="10dp"
        android:contentDescription="@string/default_content_description_text"
        android:src="@drawable/ic_menu_moreoverflow_normal_holo_light" >
    </ImageView>

</RelativeLayout>

当您单击TextView时,它将展开或折叠,具体取决于当前是否显示子行.我已将OnClickListener附加到组行中的ImageView.单击此ImageView时,我启动一个PopupMenu,如下图所示:

显示PopupMenu并单击其中一个操作后,我想对该组的所有子项执行操作.问题是我无法确定单击ImageView的行.

我想出如何将动作应用于所有孩子的唯一方法是使用ContextMenu,如下图所示:

我想避免使用ContextMenu,因为组行上的LongClick可能不明显,用户无法确定它会对子行执行某些操作.我认为更明显的设计是将PopupMenu锚定到ImageView(在我的例子中是菜单图标)并将操作应用于该组的子行.如何使用PopupMenu获得此功能

解决方法

所以我发现,为了获得点击了哪个菜单图标的上下文,我使用了View类的 setTag()getTag()方法,并将这些方法应用于ImageView(菜单图标).

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...