精华内容
下载资源
问答
  • 上下文菜单

    2014-09-29 11:19:37
    是JAVA最常见的上下文菜单,在编程中最常遇到,也用了最简单的方式,让人看了一目了然。
  • 学习目标;覆盖Activity的onCreateContextMenu)事件方法调用Menu的add方法添加菜单项MenuItem;上下文菜单示例;线性布局示例;线性布局示例;知识点小结;感谢您的学习
  • 上下文菜单Update: These context menus display even when JavaScript is disabled; so best practice will be to create these menu structures via JavaScript. Mass innerHTML injection can be used or basic ...

    上下文菜单

    Update: These context menus display even when JavaScript is disabled; so best practice will be to create these menu structures via JavaScript. Mass innerHTML injection can be used or basic DOM node injection.

    更新:即使禁用了JavaScript,这些上下文菜单也会显示。 因此最佳做法是通过JavaScript创建这些菜单结构。 可以使用大量的innerHTML注入或基本的DOM节点注入。

    Firefox Context Menu

    One of the hidden gems within the HTML5 spec is context menus. The HTML5 context menu spec allows developers to create custom context menus for given blocks within simple menu and menuitem elements. The menu information lives right within the page so there's no need to create a custom plugin. Let me show you how you can create your own custom context menus from basic HTML!

    HTML5规范中隐藏的宝石之一是上下文菜单 。 HTML5上下文菜单规范允许开发人员为简单菜单和menuitem元素内的给定块创建自定义上下文菜单。 菜单信息直接存在于页面内,因此无需创建自定义插件 。 让我向您展示如何从基本HTML创建自己的自定义上下文菜单!

    HTML (The HTML)

    Let's first start by defining a block of HTML and assigning the ID of the menu nodes to be used:

    首先,我们定义一个HTML块并分配要使用的菜单节点的ID:

    
    <section contextmenu="mymenu">
    	<!-- 
    		For the purpose of cleanliness, 
    		I'll put my menu inside the element that will use it 
    	-->
    </section>
    
    
    

    With the block defined, now it's time to create the additional context menu items for the given block:

    定义了块之后,现在该为给定块创建其他上下文菜单项了:

    
    <menu type="context" id="mymenu">
    	<menuitem label="Refresh Post" onclick="window.location.reload();" icon="/images/refresh-icon.png"></menuitem>
    	<menuitem label="Skip to Comments" onclick="window.location='#comments';" icon="/images/comment_icon.gif"></menuitem>
    	<menu label="Share on..." icon="/images/share_icon.gif">
    		<menuitem label="Twitter" icon="/images/twitter_icon.gif" onclick="goTo('//twitter.com/intent/tweet?text=' + document.title + ':  ' + window.location.href);"></menuitem>
    		<menuitem label="Facebook" icon="/images/facebook_icon16x16.gif" onclick="goTo('//facebook.com/sharer/sharer.php?u=' + window.location.href);"></menuitem>
    	</menu>
    </menu>
    
    
    

    With a base menu tag with the type of context and id to match the context attribute for the blog it's to be used for, menu items or submenus may be created. Menu items may have label, icon, and onclick attributes to represent design and actions. Actions can have predefined functions or inline javascript code, just as any element can. Multiple parents can use the same menu, so no need to repeat the same menus.

    使用具有上下文类型和ID的基本菜单标签来匹配要用于其的博客的context属性,可以创建菜单项或子菜单。 菜单项可能具有labelicononclick属性,以表示设计和操作。 动作可以具有预定义的功能或内联javascript代码,就像任何元素一样。 多个父母可以使用同一菜单,因此无需重复相同的菜单。

    This is where I'd insert more detail, but this is so damn easy that there's no point in boring you...

    这是我要插入更多细节的地方,但这太容易了,以至于无聊无聊……

    Mozilla Firefox is currently the only browser to support this API. I wouldn't consider adding context menus a critical necessity but the ability to do so is quite nice, and I plan to add them to my blog soon. This API is the epitome of "used for enhancement and wont harm". My "share" example is fairly basic and supplemental; have an scenario which the contextmenu API may be more useful? Share!

    Mozilla Firefox当前是唯一支持此API的浏览器。 我不会考虑添加上下文菜单,但是这样做的能力非常好,我计划很快将它们添加到我的博客中。 该API是“用于增强和避免伤害”的缩影。 我的“分享”示例是相当基本和补充的; 有一个情景菜单API可能更有用的方案? 分享!

    翻译自: https://davidwalsh.name/html5-context-menu

    上下文菜单

    展开全文
  • listview上下文菜单 在这篇文章中,我们要分析上下文菜单 ( contextual action bar )。 这是与特定项目相关的菜单。 上下文菜单几乎可以应用于所有视图,但通常与ListView一起使用 。 我们谈论了很多列表视图,...

    listview上下文菜单

    在这篇文章中,我们要分析上下文菜单contextual action bar )。 这是与特定项目相关的菜单。 上下文菜单几乎可以应用于所有视图,但通常与ListView一起使用 我们谈论了很多列表视图,因为它是最重要的组件之一。 我们可以区分两种不同类型的上下文菜单:

    • 浮动菜单
    • 上下文动作模式(ActionMode)

    浮动菜单用于低于3.0(API级别11)的Android版本。 从本质上讲,它是一个菜单,当用户长时间单击ListView项时出现。 您可以

    在这里找到一个例子。 看起来如下图所示:

    上下文动作模式是在Android 3.0或更高版本中引入的,它实质上是一个上下文栏,当用户长按一个项目时 ,它会显示在顶部 根据Android指南,这种菜单比浮动菜单要好。 在本文中,我们要分析如何创建此菜单。

    创建上下文操作模式:定义ActionMode.CallBack接口

    要创建上下文菜单,我们首先必须定义一个ActionMode.CallBack接口。 用户长时间单击ListView项时,将调用此接口。 代码如下:

    private ActionMode.Callback modeCallBack = new ActionMode.Callback() {
    
       public boolean onPrepareActionMode(ActionMode mode, Menu menu)    
        return false;
       }
    
      public void onDestroyActionMode(ActionMode mode) {
        mode = null;   
       }
    
       public boolean onCreateActionMode(ActionMode mode, Menu menu) {
         return true;
       }
    
       public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
       }
    };

    我们对第11行和第15行感兴趣。第一个是在屏幕顶部创建上下文动作栏的地方,在第15行是当用户选择菜单项之一时处理逻辑的地方。

    我们要做的第一件事是创建菜单。 为了简单起见,我们可以假设只有两个菜单项,然后在res / menu下定义一个名为activity_main.xml的文件:

    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:id="@+id/edit"
              android:icon="@android:drawable/ic_menu_edit"/>
    
        <item android:id="@+id/delete"
              android:icon="@android:drawable/ic_menu_delete"/>
    
    </menu>

    现在我们有了菜单,我们只需要将其“注入”到
    onCreateActionMode方法。

    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
     mode.setTitle("Options");
     mode.getMenuInflater().inflate(R.menu.activity_main, menu);
     return true;
    }

    现在,当用户长按一个项目时,我们必须显示此上下文操作栏。

    ActionMode和长按:onItemLongClickListener

    如果我们想在用户长按时显示此上下文栏,我们只需在ListView上设置一个侦听器,即在源代码中称为lv。 因此,我们有:

    lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
       public boolean onItemLongClick (AdapterView parent, View view, int position, long id) {
         System.out.println("Long click");
         startActionMode(modeCallBack);
         view.setSelected(true);
         return true;
       }
    });

    在第4行中,我们只需使用startActionMode方法启动上下文菜单。 现在的结果是:

    如您在顶部看到的,我们有上下文操作栏。

    上下文菜单项选择

    现在,假设用户单击菜单项。 我们如何处理此事件? 好吧,如果我们回到ActionMode.CallBack,我们必须实现另一个方法onActionItemClicked 因此,我们有:

    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
    
     int id = item.getItemId();
     switch (id) {
       case R.id.delete: {
         aAdpt.remove( aAdpt.getItem(aAdpt.currentSelection) );
                mode.finish();
         break;
              }
              case R.id.edit: {
         System.out.println(" edit ");
                break;
             }
             default:
                return false;
    
    }

    在第6行中,我们只需从适配器中删除所选项目。 要知道所选项目在ListView中的位置,我们将其存储在OnItemLongClickListener方法中。

    aAdpt.currentSelection = position;

    完成用户菜单项的选择后,我们必须关闭上下文操作栏callig mode.finish(第7行)。

    参考: Android ListView上下文菜单:来自我们的JCG合作伙伴 Francesco Azzola在Surviving w / Android博客上的ActionMode.CallBack。

    翻译自: https://www.javacodegeeks.com/2013/06/android-listview-context-menu-actionmode-callback.html

    listview上下文菜单

    展开全文
  • 本文实例讲述了Android上下文菜单用法。分享给大家供大家参考。具体如下: 上下文菜单不同于选项菜单,选项菜单服务于Activity,而上下文菜单则是注册到某个View对象上的。 如果一个View对象注册了上下文菜单,用户...
  • android studio写的选项菜单和上下文菜单,在同一个项目中了
  • 使用上下文菜单

    2019-10-02 04:28:54
    上下文菜单与当前获得焦点的view关联,并通过按下轨迹球、D-pad的中键,或常按View3秒来触发。 定义和填入上下文菜单和Activity菜单类似。为特定的View创建上下文菜单有两种方式。 创建上下文菜单 第一种...
       

    上下文菜单与当前获得焦点的view关联,并通过按下轨迹球、D-pad的中键,或常按View3秒来触发。

     

    定义和填入上下文菜单和Activity菜单类似。为特定的View创建上下文菜单有两种方式。

     

    创建上下文菜单

     

    第一种方式是为View类创建通用的上下文菜单,通过重写View的onCreateContextMenu处理函数,如下:

     

    @Override

    public void onCreateContextMenu(ContextMenu menu) {

    super.onCreateContextMenu(menu);

    menu.add(“ContextMenuItem1”);

    }

     

    这种方式创建的上下文菜单会在任何包含View类的Activity中获得。

     

    更加变通的方式是创建Activity指定的上下文菜单,通过重写onCreateContextMenu方法并注册需要上下文菜单的View。注册View使用registerForContextMenu方法,传入View,如下代码所示:

     

    @Override

    public void onCreate(Bundle icicle) {

    super.onCreate(icicle);

    EditText view = new EditText(this);

    setContentView(view);

    registerForContextMenu(view);

    }

     

    一旦View被注册,任何上下文菜单该显示的时候,onCreateContextMenu处理函数都会被触发。

     

    重写onCreateContextMenu方法,并检查哪个View触发菜单创建,并填入合适的菜单项,如下面的代码片段所示:

     

    @Override

    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {

    super.onCreateContextMenu(menu, v, menuInfo);

    menu.setHeaderTitle(“Context Menu”);

    menu.add(0, menu.FIRST, Menu.NONE, “Item 1”).setIcon(R.drawable.menu_item);

    menu.add(0, menu.FIRST+1, Menu.NONE, “Item 2”).setCheckable(true);

    menu.add(0, menu.FIRST+2, Menu.NONE, “Item 3”).setShortcut(‘3’, ‘3’);

    SubMenu sub = menu.addSubMenu(“Submenu”);

    sub.add(“Submenu Item”);

    }

     

    如上所示,ContextMenu类支持和Menu类相同的add方法,所以,你可以用和ActivityMenu相同的方法填入上下文菜单项——包括子菜单,但它们俩都不支持图标。你也可以指定上下文菜单头条的文本和图标。

     

    Android支持使用Intent Filter运行时填入上下文菜单。这个机制允许你指定当前的View呈现的数据类型和询问其它Android应用程序是否支持一些行为来填入上下文菜单。这个行为最普通的例子是EditText控件上的剪切、拷贝、粘贴菜单项。这些内容将在下一章详细描述。

     

    处理上下文菜单选择

     

    上下文菜单项选择的处理和Activity的菜单相似。你可以附加一个Intent或者菜单项Click Listener到每个菜单项上,或者通过重写Activity中的onContextItemSelected这个首选技巧。

     

    Activity里,什么时候上下文菜单项被选择,这个事件处理函数就被触发。一个框架实现如下所示:

     

    @Override

    public boolean onContextItemSelected(MenuItem item) {

    super.onContextItemSelected(item);

    [ ... Handle menu item selection ... ]

    return false;

    }

     

     

    转载于:https://www.cnblogs.com/xirihanlin/archive/2009/07/28/1532986.html

    展开全文
  • 文档中包括Android实现上下文菜单、下拉菜单、选项菜单代码以及截图,亲测可用!!!
  • 上下文菜单是在计算机屏幕上单击鼠标右键时列出的菜单。 菜单通常包含一些我们喜欢的重复操作 的快捷方式 ,例如创建或排序文件夹/文件,打开新的应用程序窗口或访问系统偏好设置以更改选项。 多年来,“上下文...

    上下文菜单是在计算机屏幕上单击鼠标右键时列出的菜单。 菜单通常包含一些我们喜欢的重复操作 的快捷方式 ,例如创建或排序文件夹/文件,打开新的应用程序窗口或访问系统偏好设置以更改选项。

    多年来,“上下文菜单”驻留在本机应用程序中。 如今,上下文菜单为Web应用带来了很多好处,例如在cPanel的File ManagerGmail中 这些菜单是使用大量JavaScript脚本构建的。

    将来,我们也许可以通过HTML5构建上下文菜单以在我们的网站中使用 快跟我看看。

    建立上下文菜单

    HTML5引入了两个新元素, menumenuitem ,供您构建上下文菜单。 为了使浏览器将menu元素视为“上下文菜单”,我们必须将菜单类型设置为context并为其指定唯一的ID。

    下面是一个示例,其中我们创建了一个包含两个项目的上下文菜单。

    <menu type="context" id="context-menu-id">
    	<menuitem>Edit Content</menuitem>
    	<menuitem>Email Selection</menuitem>
    </menu>

    也可以通过以下方式嵌套menu元素来添加子菜单:

    <menu type="context" id="context-menu-id">
    	<menuitem>Edit Content</menuitem>
    	<menuitem>Email Selection</menuitem>
    	<menu label="Share...">
    		<menuitem>Facebook</menuitem>
    		<menuitem>Twitter</menuitem>
    	</menu>
    </menu>

    现在,要使右键单击时上下文菜单显示在屏幕上,我们使用一个名为contextmenu的新HTML属性。 此属性用于拾取具有指定ID的菜单; 给定上面的示例,我们可以使用contextmenu=context-menu-id定位上下文菜单。

    如果要在整个页面上使用上下文菜单,可以在body标签中分配属性。 我们还可以将其添加到HTML元素中,以仅在该元素内使用菜单。

    新的上下文菜单将出现在“操作系统”菜单中,如下所示。

    添加图标

    我敢肯定,你们中的许多人都已经看到了一些上下文菜单,其中带有一个图标。 在某些情况下,图标可能是一种很好的视觉辅助,可以帮助用户快速关联和理解菜单目的 另外,它还为用户提供了与新菜单关联的应用程序的线索。

    我们还可以使用icon属性轻松地将icon添加到基于HTML5的上下文菜单中,例如:

    <menu type="context" id="context-menu-id">
    	<menuitem icon="img/edit.png">Edit Content</menuitem>
    	<menuitem icon="img/mail.png">Email Selection</menuitem>
    	<menu label="Share...">
    		<menuitem>Facebook</menuitem>
    		<menuitem>Twitter</menuitem>
    	</menu>
    </menu>

    这是我们在浏览器中看到的。

    使菜单正常运行

    此时,当我们单击新的上下文菜单时,它什么也不做。 但是,使其与裸JavaScript一起运行非常容易。 在我们的示例中,我们有一个名为“电子邮件选择”的菜单。 该菜单将允许用户使用其电子邮件应用程序发送突出显示的文本

    为了实现这个想法,让我们添加功能以获取用户突出显示的文本。

    function getSelectedText() {
    	var text = "";
    	if(window.getSelection) {
    		text = window.getSelection().toString();
    	} else if (document.selection && document.selection.type != 'Control') {
    		text = document.selection.createRange().text;
    	}
    	return text;
    };

    然后,我们再创建一个函数,例如sendEmail(),它将打开电子邮件应用程序。 电子邮件的主题将预先填充文档标题,而电子邮件的内容将填充用户的选定文本。

    function sendEmail() {
    	var bodyText = getSelectedText();
        window.location.href = 'mailto:?subject='+ document.title +'&body='+ bodyText +'';
    };

    最后,我们将其添加到具有onclick属性的菜单中,以使其在单击时起作用。

    <menuitem icon="img/mail.png" onclick="sendEmail();">Email Selection</menuitem>

    过去,我们介绍了如何使用HTML5 EditableContent ,它使我们可以直接从前端编辑Web内容。 我们可以利用此功能,将其添加到名为“编辑内容”的菜单中。

    边注

    我对这项新功能感到非常兴奋。 我可以看到我们可以使用HTML5上下文菜单构建的事物的许多可能性。 不幸的是,在撰写本文时,只有Firefox实现了此功能。 我希望其他浏览器能尽快赶上。

    您可以在下面查看演示(仅适用于Firefox)


    翻译自: https://www.hongkiat.com/blog/html5-contextual-menu/

    展开全文
  • Android之上下文菜单ContextMenu

    千人学习 2016-07-20 11:24:19
    Android中的上下文菜单,长按可以弹出的知识点
  • 这个案例就是实现listView显示列表,并绑定了上下文菜单,实现删除
  • 上下文菜单When you get used to having access to an awesome (and often used) key on your keyboard, you are not going to be happy when a different keyboard is missing that particular key. So what do you...
  • 本文实例讲述了js调出上下文菜单的实例代码,分享给大家供大家参考,具体如下: 原理  当用户点击右键时会触发一个contextmenu事件,默认会触发浏览器的默认的上下文菜单,通过手动阻止这个默认行为,然后再显示...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,474
精华内容 1,789
关键字:

上下文菜单