GVKun编程网logo

在附加到NotifyIcon的ContextMenu中延迟单击事件

20

以上就是给各位分享在附加到NotifyIcon的ContextMenu中延迟单击事件,同时本文还将给你拓展和之间的区别、android–onCreateContextMenu使用ContextMenu

以上就是给各位分享在附加到NotifyIcon的ContextMenu中延迟单击事件,同时本文还将给你拓展之间的区别、android – onCreateContextMenu使用ContextMenuInfo的null值调用、android.view.ContextMenu.ContextMenuInfo的实例源码等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

在附加到NotifyIcon的ContextMenu中延迟单击事件

在附加到NotifyIcon的ContextMenu中延迟单击事件

我正在为一个应用程序的插件(使用System.ComponentModel.Composition )在Windows UI的通知区域中放置一个图标。

trayMenu.MenuItems.Clear(); // Create context menu items foreach( IJob job in jobs ) { MenuItem menuItem = new MenuItem( job.Name ) {Tag = job}; menuItem.Click += MenuItemClick; trayMenu.MenuItems.Add( menuItem ); } private void MenuItemClick( object sender,EventArgs e ) { // ... }

现在,当我点击该图标上下文菜单中的一个项目时, Click处理程序没有被调用。

有趣的是,当我再次右键单击图标(单击菜单项后)先前单击的MenuItem的Click处理程序被调用。 左键单击或hover在图标上不会触发此步骤。

到底是怎么回事?

更新 :我有一个强烈的感觉,我的问题与这个问题有关 。 但我仍然试图找出如何将其应用到我的插件/应用程序。

为什么Windows 7不能加载PresentationFramework.Aero2程序集?

如何使用电源pipe理function(PowerEnuimerate)获取电源设置

如何以编程方式检测来自Windows 2003服务器的无线networking设备的密码types和encryption级别

.net 2.0 Windows应用程序需要提升uac权限

屏幕保护程序仍然必须安装到System32?

在Windows中对程序进行基准testing的最佳方式是什么?

简单的CRUD使用WPF和数据绑定

是什么让我的计时器跑不准?

.NET与Windows RT蓝牙LE API – 重新启动Windows后无法读取或写入设备

我怎样才能得到一个服务来请求重启?

我的理解是这个问题是NotifyIcon没有处理窗口消息(或者至少没有我喜欢/需要的消息)。

我通过从Form继承并为我的插件运行另一个消息泵来解决问题。

using System; using ... namespace JobTracker.Tray { [Export( typeof( IJobTrackerPlugin ) )] public class TrayPlugin : Form,IJobTrackerPlugin { #region Plugin Interface [Import( typeof( IJobTracker ) )] #pragma warning disable 649 private IJobTracker _host; #pragma warning restore 649 private IJobTracker Host { get { return _host; } } public void Initialize() { trayMenu = new ContextMenu(); trayMenu.MenuItems.Add( "Exit",OnExit ); trayIcon = new NotifyIcon(); trayIcon.Icon = new Icon( SystemIcons.Application,32,32 ); trayIcon.ContextMenu = trayMenu; // Show the proxy form to pump messages Load += TrayPluginLoad; Thread t = new Thread( () => { ShowInTaskbar = false; FormBorderStyle = FormBorderStyle.None; trayIcon.Visible = true; ShowDialog(); } ); t.Start(); } private void TrayPluginLoad( object sender,EventArgs e ) { // Hide the form Size = new Size( 0,0 ); } #endregion private NotifyIcon trayIcon; private ContextMenu trayMenu; private void OnExit( object sender,EventArgs e ) { Application.Exit(); } #region Implementation of Idisposable // ... private void dispoSEObject( bool disposing ) { if( _disposed ) { return; } if( disposing ) { // dispose managed resources. if( Invokerequired ) { EndInvoke( BeginInvoke( new MethodInvoker( Close ) ) ); } else { Close(); } trayIcon.dispose(); trayMenu.dispose(); } // dispose unmanaged resources. _disposed = true; } #endregion } }

似乎很好。

<context:annotation-config><context:component-scan


<context:annotation-config> 是用于激活那些已经在spring容器里注册过的bean(无论是通过xml的方式还是通过package sanning的方式)上面的注解,是一个注解处理工具。

<context:component-scan>除了具有<context:annotation-config>的功能之外,<context:component-scan>还可以在指定的package下扫描以及注册javabean 。

 

下面我们通过例子来详细查看他们的区别,

有三个class   A,B,C,并且B,C的对象被注入到A中.

 

[java] view plain copy 在CODE上查看代码片派生到我的代码片

  1. package com.xxx;  

  2. public class B {  

  3.   public B() {  

  4.     System.out.println("creating bean B: " + this);  

  5.   }  

  6. }  

  7.   

  8. package com.xxx;  

  9. public class C {  

  10.   public C() {  

  11.     System.out.println("creating bean C: " + this);  

  12.   }  

  13. }  

  14.   

  15. package com.yyy;  

  16. import com.xxx.B;  

  17. import com.xxx.C;  

  18. public class A {   

  19.   private B bbb;  

  20.   private C ccc;  

  21.   public A() {  

  22.     System.out.println("creating bean A: " + this);  

  23.   }  

  24.   public void setBbb(B bbb) {  

  25.     System.out.println("setting A.bbb with " + bbb);  

  26.     this.bbb = bbb;  

  27.   }  

  28.   public void setCcc(C ccc) {  

  29.     System.out.println("setting A.ccc with " + ccc);  

  30.     this.ccc = ccc;   

  31.   }  

  32. }  

 

 

在applicationContext.xml中加入下面的配置 :

 

<bean id="bBean"/><bean id="cBean"/><bean id="aBean">
  <property name="bbb" ref="bBean"/>  <property name="ccc" ref="cBean"/></bean>

 

加载applicationContext.xml配置文件,将得到下面的结果:

 

creating bean B: com.xxx.B@c2ff5
creating bean C: com.xxx.C@1e8a1f6
creating bean A: com.yyy.A@1e152c5
setting A.bbb with com.xxx.B@c2ff5
setting A.ccc with com.xxx.C@1e8a1f6

 

OK, 这个结果没什么好说的,就是完全通过xml的方式,不过太过时了,下面通过注解的方式来简化我们的xml配置文件

首先,我们使用autowire的方式将对象bbb和ccc注入到A中:

 

 

[java] view plain copy 在CODE上查看代码片派生到我的代码片

  1. package com.yyy;  

  2. import org.springframework.beans.factory.annotation.Autowired;  

  3. import com.xxx.B;  

  4. import com.xxx.C;  

  5. public class A {   

  6.   private B bbb;  

  7.   private C ccc;  

  8.   public A() {  

  9.     System.out.println("creating bean A: " + this);  

  10.   }  

  11.   @Autowired  

  12.   public void setBbb(B bbb) {  

  13.     System.out.println("setting A.bbb with " + bbb);  

  14.     this.bbb = bbb;  

  15.   }  

  16.   @Autowired  

  17.   public void setCcc(C ccc) {  

  18.     System.out.println("setting A.ccc with " + ccc);  

  19.     this.ccc = ccc;  

  20.   }  

  21. }  

 

 

 

然后,我们就可以从applicationContext.xml中移除下面的配置

 

<property name="bbb" ref="bBean"/><property name="ccc" ref="cBean"/>

 

移除之后,我们的applicationContext.xml配置文件就简化为下面的样子了

 

<bean id="bBean"/><bean id="cBean"/><bean id="aBean"/>

 

当我们加载applicationContext.xml配置文件之后,将得到下面的结果:

 

creating bean B: com.xxx.B@5e5a50
creating bean C: com.xxx.C@54a328
creating bean A: com.yyy.A@a3d4cf

 

OK, 结果是错误的的,究竟是因为什么呢?为什么我们的属性没有被注入进去呢?

是因为注解本身并不能够做任何事情,它们只是最基本的组成部分,我们需要能够处理这些注解的处理工具来处理这些注解

这就是<context:annotation-config> 所做的事情

我们将applicationContext.xml配置文件作如下修改:

 

<context:annotation-config /><bean id="bBean"/><bean id="cBean"/><bean id="aBean"/>

 

当我们加载applicationContext.xml配置文件之后,将得到下面的结果:

 

creating bean B: com.xxx.B@15663a2
creating bean C: com.xxx.C@cd5f8b
creating bean A: com.yyy.A@157aa53
setting A.bbb with com.xxx.B@15663a2
setting A.ccc with com.xxx.C@cd5f8b

 

OK, 结果正确了。


下面演示<context:annotation-config> 跟 <context:component-scan>区别:

但是如果我们将代码作如下修改:

 

 

[java] view plain copy 在CODE上查看代码片派生到我的代码片

  1. package com.xxx;  

  2. import org.springframework.stereotype.Component;  

  3. @Component  

  4. public class B {  

  5.   public B() {  

  6.     System.out.println("creating bean B: " + this);  

  7.   }  

  8. }  

  9.   

  10. package com.xxx;  

  11. import org.springframework.stereotype.Component;  

  12. @Component  

  13. public class C {  

  14.   public C() {  

  15.     System.out.println("creating bean C: " + this);  

  16.   }  

  17. }  

  18.   

  19. package com.yyy;  

  20. import org.springframework.beans.factory.annotation.Autowired;  

  21. import org.springframework.stereotype.Component;  

  22. import com.xxx.B;  

  23. import com.xxx.C;  

  24. @Component  

  25. public class A {   

  26.   private B bbb;  

  27.   private C ccc;  

  28.   public A() {  

  29.     System.out.println("creating bean A: " + this);  

  30.   }  

  31.   @Autowired  

  32.   public void setBbb(B bbb) {  

  33.     System.out.println("setting A.bbb with " + bbb);  

  34.     this.bbb = bbb;  

  35.   }  

  36.   @Autowired  

  37.   public void setCcc(C ccc) {  

  38.     System.out.println("setting A.ccc with " + ccc);  

  39.     this.ccc = ccc;  

  40.   }  

  41. }  

 

 

 

 

applicationContext.xml配置文件修改为:

 

<context:annotation-config />

 

当我们加载applicationContext.xml配置文件之后,却没有任何输出,这是为什么呢?

那是因为<context:annotation-config />仅能够在已经在已经注册过的bean上面起作用。

对于没有在spring容器中注册的bean,它并不能执行任何操作。

但是不用担心,<context:component-scan>除了具有<context:annotation-config />的功能之外,还具有自动将带有@component,@service,@Repository等注解的对象注册到spring容器中的功能。

我们将applicationContext.xml配置文件作如下修改:

 

<context:component-scan base-package="com.xxx"/>

 

当我们加载applicationContext.xml的时候,会得到下面的结果:

 

creating bean B: com.xxx.B@1be0f0a
creating bean C: com.xxx.C@80d1ff

 

这是什么原因呢?

是因为我们仅仅扫描了com.xxx包及其子包的类,而class  A是在com.yyy包下,所以就扫描不到了

下面我们在applicationContext.xml中把com.yyy也加入进来:

 

<context:component-scan base-package="com.xxx"/><context:component-scan base-package="com.xxx,com.yyy"/>
然后加载applicationContext.xml就会得到下面的结果:
creating bean B: com.xxx.B@cd5f8b
creating bean C: com.xxx.C@15ac3c9
creating bean A: com.yyy.A@ec4a87
setting A.bbb with com.xxx.B@cd5f8b
setting A.ccc with com.xxx.C@15ac3c9

 

哇,结果正确啦 !

回头看下我们的applicationContext.xml文件,已经简化为:

 

<context:component-scan base-package="com.xxx"/><context:component-scan base-package="com.xxx,com.yyy"/>

 

了。

 

那如果我们在applicationContext.xml手动加上下面的配置,也就是说既在applicationContext.xml中手动的注册了A的实例对象,同时,通过component-scan去扫描并注册B,C的对象

 

<context:component-scan base-package="com.xxx"/><bean id="aBean"/>

 

结果仍是正确的:

 

creating bean B: com.xxx.B@157aa53
creating bean C: com.xxx.C@ec4a87
creating bean A: com.yyy.A@1d64c37
setting A.bbb with com.xxx.B@157aa53
setting A.ccc with com.xxx.C@ec4a87

 

虽然class  A并不是通过扫描的方式注册到容器中的 ,但是<context:component-scan> 所产生的的处理那些注解的处理器工具,会处理所有绑定到容器上面的bean,不管是通过xml手动注册的还是通过scanning扫描注册的。

那么,如果我们通过下面的方式呢?我们既配置了<context:annotation-config />,又配置了<context:component-scan base-package="com.xxx" />,它们都具有处理在容器中注册的bean里面的注解的功能。会不会出现重复注入的情况呢?

 

<context:annotation-config /><context:component-scan base-package="com.xxx"/><bean id="aBean"/>

 

不用担心,不会出现的:

 

creating bean B: com.xxx.B@157aa53
creating bean C: com.xxx.C@ec4a87
creating bean A: com.yyy.A@1d64c37
setting A.bbb with com.xxx.B@157aa53
setting A.ccc with com.xxx.C@ec4a87

 

因为<context:annotation-config />和 <context:component-scan>同时存在的时候,前者会被忽略。也就是那些@autowire,@resource等注入注解只会被注入一次

哪怕是你手动的注册了多个处理器,spring仍然只会处理一次:

 

[xml] view plain copy 在CODE上查看代码片派生到我的代码片

  1. <context:annotation-config />  

  2. <context:component-scan base-package="com.xxx" />  

  3. <bean id="aBean"  />  

  4. <bean id="bla"  />  

  5. <bean id="bla1"  />  

  6. <bean id="bla2"  />  

  7. <bean id="bla3"  />  

 

 

结果仍是正确的:

 

creating bean B: com.xxx.B@157aa53
creating bean C: com.xxx.C@ec4a87
creating bean A: com.yyy.A@25d2b2
setting A.bbb with com.xxx.B@157aa53
setting A.ccc with com.xxx.C@ec4a87



<context:annotation-config>和<context:component-scan>之间的区别

之间的区别

如何解决<context:annotation-config>和<context:component-scan>之间的区别?

<context:annotation-config>用于激活已经在应用程序上下文中注册的bean中的注释(无论它们是使用XML定义还是通过包扫描定义的)。

<context:component-scan>不仅可以执行<context:annotation-config>操作,<context:component-scan>还可以扫描软件包以在应用程序上下文中查找并注册bean。

我将使用一些示例来显示差异/相似之处。

让我们用型的三种豆基本设置开始AB并且C,与BC被注入A

package com.xxx;
public class B {
  public B() {
    System.out.println("creating bean B: " + this);
  }
}

package com.xxx;
public class C {
  public C() {
    System.out.println("creating bean C: " + this);
  }
}

package com.yyy;
import com.xxx.B;
import com.xxx.C;
public class A { 
  private B bbb;
  private C ccc;
  public A() {
    System.out.println("creating bean A: " + this);
  }
  public void setBbb(B bbb) {
    System.out.println("setting A.bbb with " + bbb);
    this.bbb = bbb;
  }
  public void setCcc(C ccc) {
    System.out.println("setting A.ccc with " + ccc);
    this.ccc = ccc; 
  }
}

使用以下XML配置:

<bean id="bBean"/>
<bean id="cBean"/>
<bean id="aBean">
  <property name="bbb" ref="bBean" />
  <property name="ccc" ref="cBean" />
</bean>

加载上下文会产生以下输出:

creating bean B: com.xxx.B@c2ff5
creating bean C: com.xxx.C@1e8a1f6
creating bean A: com.yyy.A@1e152c5
setting A.bbb with com.xxx.B@c2ff5
setting A.ccc with com.xxx.C@1e8a1f6

好的,这是预期的输出。但这是“旧风格”的spring。现在我们有了注释,因此让我们使用它们来简化XML。

首先,让我们自动连接beanbbbccc属性,A如下所示:

package com.yyy;
import org.springframework.beans.factory.annotation.Autowired;
import com.xxx.B;
import com.xxx.C;
public class A { 
  private B bbb;
  private C ccc;
  public A() {
    System.out.println("creating bean A: " + this);
  }
  @Autowired
  public void setBbb(B bbb) {
    System.out.println("setting A.bbb with " + bbb);
    this.bbb = bbb;
  }
  @Autowired
  public void setCcc(C ccc) {
    System.out.println("setting A.ccc with " + ccc);
    this.ccc = ccc;
  }
}

这使我可以从XML中删除以下行:

<property name="bbb" ref="bBean" />
<property name="ccc" ref="cBean" />

我的XML现在简化为:

<bean id="bBean"/>
<bean id="cBean"/>
<bean id="aBean"/>

当我加载上下文时,我得到以下输出:

creating bean B: com.xxx.B@5e5a50
creating bean C: com.xxx.C@54a328
creating bean A: com.yyy.A@a3d4cf

好,这是错误的!发生了什么?为什么我的房屋不自动接线?

好吧,注解是一个不错的功能,但就其本身而言,它们什么也没做。他们只是注释东西。你需要一个处理工具来查找批注并对其进行处理。

<context:annotation-config>进行营救。这将激活对在定义自身的相同应用程序上下文中定义的bean上发现的注释的操作。

如果我将XML更改为此:

<context:annotation-config />
<bean id="bBean"/>
<bean id="cBean"/>
<bean id="aBean"/>

当我加载应用程序上下文时,我得到正确的结果:

creating bean B: com.xxx.B@15663a2
creating bean C: com.xxx.C@cd5f8b
creating bean A: com.yyy.A@157aa53
setting A.bbb with com.xxx.B@15663a2
setting A.ccc with com.xxx.C@cd5f8b

好的,这很好,但是我从XML中删除了两行并添加了一行。那不是很大的区别。带有注释的想法是应该删除XML。

因此,让我们删除XML定义并将其全部替换为注释:

package com.xxx;
import org.springframework.stereotype.Component;
@Component
public class B {
  public B() {
    System.out.println("creating bean B: " + this);
  }
}

package com.xxx;
import org.springframework.stereotype.Component;
@Component
public class C {
  public C() {
    System.out.println("creating bean C: " + this);
  }
}

package com.yyy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.xxx.B;
import com.xxx.C;
@Component
public class A { 
  private B bbb;
  private C ccc;
  public A() {
    System.out.println("creating bean A: " + this);
  }
  @Autowired
  public void setBbb(B bbb) {
    System.out.println("setting A.bbb with " + bbb);
    this.bbb = bbb;
  }
  @Autowired
  public void setCcc(C ccc) {
    System.out.println("setting A.ccc with " + ccc);
    this.ccc = ccc;
  }
}

在XML中,我们仅保留以下内容:

<context:annotation-config />

我们加载上下文,结果是……什么都没有。没有创建bean,也没有自动装配bean。没有!

这是因为,正如我在第一段中所述,这<context:annotation-config />仅适用于在应用程序上下文中注册的bean。因为我删除了这三个bean的XML配置,所以没有创建bean,<context:annotation-config />也没有要处理的“目标”。

但这不会成为一个问题<context:component-scan>,可以扫描软件包以查找“目标”。让我们将XML配置的内容更改为以下条目:

<context:component-scan base-package="com.xxx" />

当我加载上下文时,我得到以下输出:

creating bean B: com.xxx.B@1be0f0a
creating bean C: com.xxx.C@80d1ff

嗯…有些东西丢失了。为什么?

如果你在班closelly看,类A有包com.yyy,但我已经在指定<context:component-scan>使用的软件包com.xxx所以这完全错过了我的A班,只有拿起B和C它们的com.xxx软件包。

为了解决这个问题,我还添加了另一个软件包:

<context:component-scan base-package="com.xxx,com.yyy" />

现在我们得到了预期的结果:

creating bean B: com.xxx.B@cd5f8b
creating bean C: com.xxx.C@15ac3c9
creating bean A: com.yyy.A@ec4a87
setting A.bbb with com.xxx.B@cd5f8b
setting A.ccc with com.xxx.C@15ac3c9

就是这样!现在你不再有XML定义,而有了注释。

作为最后一个示例,保留带注释的类A,B并将C以下内容添加到XML中,加载上下文后会得到什么?

<context:component-scan base-package="com.xxx" />
<bean id="aBean"/>

我们仍然得到正确的结果:

creating bean B: com.xxx.B@157aa53
creating bean C: com.xxx.C@ec4a87
creating bean A: com.yyy.A@1d64c37
setting A.bbb with com.xxx.B@157aa53
setting A.ccc with com.xxx.C@ec4a87

即使A不是通过扫描获得用于类的Bean ,处理工具仍将应用于<context:component-scan>在应用程序上下文中注册的所有Bean,即使A是已在XML中手动注册的。

但是,如果我们具有以下XML,会不会得到重复的bean,因为我们同时指定了<context:annotation-config /><context:component-scan>

<context:annotation-config />
<context:component-scan base-package="com.xxx" />
<bean id="aBean"/>

不,没有重复,我们再次得到了预期的结果:

creating bean B: com.xxx.B@157aa53
creating bean C: com.xxx.C@ec4a87
creating bean A: com.yyy.A@1d64c37
setting A.bbb with com.xxx.B@157aa53
setting A.ccc with com.xxx.C@ec4a87

这是因为两个标签都注册了相同的处理工具(如果已指定,则可以省略),但是Spring只会运行它们一次。

即使你多次注册处理工具,Spring仍将确保它们仅执行一次魔术。此XML:

<context:annotation-config />
<context:component-scan base-package="com.xxx" />
<bean id="aBean"/>
<bean id="bla"/>
<bean id="bla1"/>
<bean id="bla2"/>
<bean id="bla3"/>

仍会产生以下结果:

creating bean B: com.xxx.B@157aa53
creating bean C: com.xxx.C@ec4a87
creating bean A: com.yyy.A@25d2b2
setting A.bbb with com.xxx.B@157aa53
setting A.ccc with com.xxx.C@ec4a87

解决方法

我正在学习Spring 3,但似乎并没有掌握<context:annotation-config>and背后的功能<context:component-scan>

从我读过他们似乎处理不同的注解(@Required,@Autowired等等VS @Component,@Repository,@Service等),而且从我读过他们注册相同什么bean后置处理器类。

为了更迷惑我,还有一个annotation-config 属性上<context:component-scan>

有人可以阐明这些标签吗?有什么相似之处,有什么不同之处,一个被另一个取代,它们彼此完成,我是否需要其中一个?

android – onCreateContextMenu使用ContextMenuInfo的null值调用

android – onCreateContextMenu使用ContextMenuInfo的null值调用

我正在尝试使用ContextMenu.
我已经使用SimpleCursorAdapter为一个简单的ListActivity成功完成了这个.
接下来我想用CursorAdapter替换SimpleCursorAdapter但仍然保留ContextMenu行为,所以我添加了两个强制覆盖函数bindView和newView

public View newView(Context context, Cursor cursor, ViewGroup parent) {
    View view = mLayoutInflater.inflate(R.layout.check_row, parent, false);
    registerForContextMenu(view);
    return view;
}

请注意registerForContextMenu,它替换了ListActivity的onCreate方法中的registerForContextMenu(getListView()).我发现有必要调用onCreateContextMenu(…)

所有这些都可行(使用预期的小部件创建的行,对它们的回调等工作等).除了提供给onCreateContextMenu(…)的ContextMenuInfo参数现在为null之外的所有内容 – 停止我访问rowId.
还有其他技巧要做 – 也许是在CursorAdapter的bindView(…)方法中?

解决方法:

我正在回答这个问题 – 但我会指出’commonsware.com’提供了线索和方向,见上文.
问题
  – 在行布局中使用CheckBox会影响上下文菜单的使用
  – 我相信CheckedTextView是用于多选的,它不适合初始化已检查状态.

我采用的解决方案如下
 1.使用CheckedTextView
 2.从CursorAdapter扩展到bindView(…)期间初始化检查状态
注意:这必须管理显示正确的图标
 3.在onListItemClick(…)中管理CheckedTextView的状态并将其记录在dBase中,不要忘记更新光标.

android.view.ContextMenu.ContextMenuInfo的实例源码

android.view.ContextMenu.ContextMenuInfo的实例源码

项目:yaacc-code    文件:ContentListActivity.java   
/**
 * Creates context menu for certain actions on a specific item.
 */
@Override
public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo) {
    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
    if (v instanceof ListView) {
        ListView listView = (ListView) v;
        Object item = listView.getAdapter().getItem(info.position);
        if (item instanceof DIDLObject) {
            selectedDIDLObject = (DIDLObject) item;
        }
    }
    menu.setHeaderTitle(v.getContext().getString(
            R.string.browse_context_title));
    ArrayList<String> menuItems = new ArrayList<String>();
    menuItems.add(v.getContext().getString(R.string.browse_context_play_all));
    menuItems.add(v.getContext().getString(R.string.browse_context_play));
    //menuItems.add(v.getContext().getString( R.string.browse_context_add_to_playplist));
    menuItems.add(v.getContext()
            .getString(R.string.browse_context_download));
    for (int i = 0; i < menuItems.size(); i++) {
        menu.add(Menu.NONE,i,menuItems.get(i));
    }
}
项目:CSipSimple    文件:CodecsFragment.java   
@Override
@SuppressWarnings("unchecked")
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) {
    AdapterView.AdapterContextMenuInfo info;
    try {
         info = (AdapterView.AdapterContextMenuInfo) menuInfo;
    } catch (ClassCastException e) {
        Log.e(THIS_FILE,"bad menuInfo",e);
        return;
    }

    HashMap<String,Object> codec = (HashMap<String,Object>) mAdapter.getItem(info.position);
    if (codec == null) {
        // If for some reason the requested item isn't available,do nothing
        return;
    }

    boolean isdisabled = ((Short)codec.get(CODEC_PRIORITY) == 0);
    menu.add(0,MENU_ITEM_ACTIVATE,isdisabled ? R.string.activate : R.string.deactivate);

}
项目:CSipSimple    文件:AccountsEditListFragment.java   
/**
 * Retrieve sip account from a given context menu info pressed
 * @param cmi The context menu info to retrieve infos from
 * @return corresponding sip profile if everything goes well,null if not able to retrieve profile
 */
private SipProfile profileFromContextMenuInfo(ContextMenuInfo cmi) {
    AdapterView.AdapterContextMenuInfo info;
    try {
        info = (AdapterView.AdapterContextMenuInfo) cmi;
    } catch (ClassCastException e) {
        Log.e(THIS_FILE,e);
        return null;
    }
    Cursor c = (Cursor) getlistadapter().getItem(info.position - getListView().getHeaderViewsCount());
    if (c == null) {
        // For some reason the requested item isn't available,do nothing
        return null;
    }
    return new SipProfile(c);
}
项目:CSipSimple    文件:AccountsEditListFragment.java   
@Override
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu,v,menuInfo);
    final SipProfile account = profileFromContextMenuInfo(menuInfo);
    if(account == null) {
        return;
    }
    WizardInfo wizardInfos = WizardUtils.getWizardClass(account.wizard);

    // Setup the menu header
    menu.setHeaderTitle(account.display_name);
    if(wizardInfos != null) {
        menu.setHeaderIcon(wizardInfos.icon);
    }

    menu.add(0,account.active ? R.string.deactivate_account
            : R.string.activate_account);
    menu.add(0,MENU_ITEM_MODIFY,R.string.modify_account);
    menu.add(0,MENU_ITEM_DELETE,R.string.delete_account);
    menu.add(0,MENU_ITEM_WIZARD,R.string.choose_wizard);

}
项目:chromium-for-android-56-debug-video    文件:RecentTabsPage.java   
@Override
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) {
    // Would prefer to have this context menu view managed internal to RecentTabsGroupView
    // Unfortunately,setting either onCreateContextMenuListener or onLongClickListener
    // disables the native onClick (expand/collapse) behavIoUr of the group view.
    ExpandableListView.ExpandableListContextMenuInfo info =
            (ExpandableListView.ExpandableListContextMenuInfo) menuInfo;

    int type = ExpandableListView.getPackedPositionType(info.packedPosition);
    int groupPosition = ExpandableListView.getPackedPositionGroup(info.packedPosition);

    if (type == ExpandableListView.PACKED_POSITION_TYPE_GROUP) {
        mAdapter.getGroup(groupPosition).onCreateContextMenuForGroup(menu,mActivity);
    } else if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
        int childPosition = ExpandableListView.getPackedPositionChild(info.packedPosition);
        mAdapter.getGroup(groupPosition).onCreateContextMenuForChild(childPosition,menu,mActivity);
    }
}
项目:financisto1-holo    文件:AbstractListActivity.java   
@Override
public void onCreateContextMenu(ContextMenu menu,menuInfo);
    AdapterView.AdapterContextMenuInfo mi = (AdapterView.AdapterContextMenuInfo)menuInfo;
    String headerTitle = getContextMenuHeaderTitle(mi.position);
    if (headerTitle != null) {
        menu.setHeaderTitle(headerTitle);
    }
    List<MenuItemInfo> menus = createContextMenus(mi.id);
    int i = 0;
    for (MenuItemInfo m : menus) {
        if (m.enabled) {
            menu.add(0,m.menuId,i++,m.titleId);              
        }
    }
}
项目:exciting-app    文件:ExpandableHListView.java   
@Override
ContextMenuInfo createContextMenuInfo( View view,int flatListPosition,long id ) {
    if( isHeaderOrFooterPosition( flatListPosition ) ) {
        // Return normal info for header/footer view context menus
        return new AdapterContextMenuInfo( view,flatListPosition,id );
    }

    final int adjustedPosition = getFlatPositionForConnector( flatListPosition );
    ExpandableHListConnector.PositionMetadata pm = mConnector.getUnflattenedPos( adjustedPosition );
    ExpandableHListPosition pos = pm.position;

    id = getChildOrGroupId( pos );
    long packedPosition = pos.getPackedPosition();

    pm.recycle();

    return new ExpandableListContextMenuInfo( view,packedPosition,id );
}
项目:aos-Video    文件:AutoScraperActivity.java   
@Override
public void onCreateContextMenu(ContextMenu menu,View view,view,menuInfo);

    // Show the name of the file in the header
    AdapterContextMenuInfo adapterMenuInfo = (AdapterContextMenuInfo)menuInfo;
    int position = adapterMenuInfo.position;
    mActivityFileCursor.movetoPosition(position);
    String path = mActivityFileCursor.getString(mDataIndex);
    MetaFile file = MetaFile.from(path);
    menu.setHeaderTitle(file.getName());

    // Add the context menu items
    menu.add(0,R.string.info,R.string.info);

    // Save the path,we will need it when an entry of the menu is selected
    mContextMenuPath = path;
}
项目:buildAPKsSamples    文件:AccountsActivity.java   
@Override
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) {
  if (v.getId() != R.id.accounts_list) {
    return;
  }

  AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
  Account account = (Account) adapter.getItem(info.position);
  menu.setHeaderTitle(account.toString());

  String[] menuItems = getResources().getStringArray(R.array.account_actions);
  for (int i = 0; i < menuItems.length; i++) {
    menu.add(Menu.NONE,menuItems[i]);
  }
}
项目:encdroidMC    文件:EDVolumeListActivity.java   
public void onCreateContextMenu(ContextMenu menu,menuInfo);

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.volume_list_context,menu);

    // Change the text of the lock/unlock item based on volume status
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
    EDVolume selected = mAdapter.getItem((int) info.id);

    MenuItem lockItem = menu.findItem(R.id.volume_list_menu_lock);

    if (selected.isLocked()) {
        lockItem.setTitle(getString(R.string.menu_unlock_volume));
    } else {
        lockItem.setTitle(getString(R.string.menu_lock_volume));
    }
}
项目:microMathematics    文件:Commander.java   
@Override
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo)
{
    try
    {
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
        if (info != null)
        {
            fileListView.setSelection(info.position,0);
        }
        menu.setHeaderTitle(R.string.fman_operation);
        AdapterIf ca = getlistadapter();
        ca.populateContextMenu(menu,info,fileListView.getSelected());
    }
    catch (Exception e)
    {
        e.printstacktrace();
    }
}
项目:SmartMath    文件:ActivityCfgKeyPad.java   
@Override
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) {  
    super.onCreateContextMenu(menu,menuInfo);
    if (v.getTag() instanceof InputKeyReference)    {
        menu.setHeaderTitle(R.string.what_do_you_want);
        menu.add(0,KEY_CONTEXT_MENU_CUT,R.string.cut_key);  
        menu.add(0,KEY_CONTEXT_MENU_copY,R.string.copy_key);  
        if (minputKeyRefClipboard.isEmpty() == false)   {
            menu.add(0,KEY_CONTEXT_MENU_PASTE_BEFORE,R.string.paste_before_key);  
            menu.add(0,KEY_CONTEXT_MENU_PASTE_ON,R.string.paste_on_key);
            menu.add(0,KEY_CONTEXT_MENU_PASTE_AFTER,R.string.paste_after_key);
        }
        menu.add(0,KEY_CONTEXT_MENU_CREATE_BEFORE,R.string.create_before_key);  
        menu.add(0,KEY_CONTEXT_MENU_CREATE_AFTER,R.string.create_after_key);  
        menu.add(0,KEY_CONTEXT_MENU_DELETE,R.string.delete_key);  
        menu.add(0,KEY_CONTEXT_MENU_EDIT,R.string.edit_key); 
        // should not use assign,i.e. minputKeyrefunderOpt = v.getTag()
        // cause minputKeyrefunderOpt and tag may change in different scenarios
        minputKeyrefunderOpt.copy((InputKeyReference) v.getTag());
    }
}
项目:q-mail    文件:FolderList.java   
@Override public void onCreateContextMenu(ContextMenu menu,menuInfo);
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
    getMenuInflater().inflate(R.menu.folder_context,menu);

    FolderInfoHolder folder = (FolderInfoHolder) mAdapter.getItem(info.position);

    menu.setHeaderTitle(folder.displayName);
}
项目:q-mail    文件:Accounts.java   
@Override
public void onCreateContextMenu(ContextMenu menu,menuInfo);
    menu.setHeaderTitle(R.string.accounts_context_menu_title);

    AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
    BaseAccount account =  mAdapter.getItem(info.position);

    if ((account instanceof Account) && !((Account) account).isEnabled()) {
        getMenuInflater().inflate(R.menu.disabled_accounts_context,menu);
    } else {
        getMenuInflater().inflate(R.menu.accounts_context,menu);
    }

    if (account instanceof SearchAccount) {
        for (int i = 0; i < menu.size(); i++) {
            android.view.MenuItem item = menu.getItem(i);
                item.setVisible(false);
        }
    }
    else {
        EnumSet<ACCOUNT_LOCATION> accountLocation = accountLocation(account);
        if (accountLocation.contains(ACCOUNT_LOCATION.TOP)) {
            menu.findItem(R.id.move_up).setEnabled(false);
        }
        else {
            menu.findItem(R.id.move_up).setEnabled(true);
        }
        if (accountLocation.contains(ACCOUNT_LOCATION.BottOM)) {
            menu.findItem(R.id.move_down).setEnabled(false);
        }
        else {
            menu.findItem(R.id.move_down).setEnabled(true);
        }
    }
}
项目:PeSanKita-android    文件:VerifyIdentityActivity.java   
@Override
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo)
{
  super.onCreateContextMenu(menu,menuInfo);

  MenuInflater inflater = getActivity().getMenuInflater();
  inflater.inflate(R.menu.verify_display_fragment_context_menu,menu);

}
项目:CSipSimple    文件:AccountFiltersListFragment.java   
/**
 * Retrieve filter id from a given context menu info pressed
 * @param cmi The context menu info to retrieve infos from
 * @return corresponding filter id if everything goes well,-1 if not able to retrieve filter
 */
private long filterIdFromContextMenuInfo(ContextMenuInfo cmi) {
    AdapterView.AdapterContextMenuInfo info;
    try {
        info = (AdapterView.AdapterContextMenuInfo) cmi;
    } catch (ClassCastException e) {
        Log.e(THIS_FILE,e);
        return -1;
    }
    return info.id;
}
项目:CSipSimple    文件:AccountFiltersListFragment.java   
@Override
public void onCreateContextMenu(ContextMenu menu,menuInfo);
    final long filterId = filterIdFromContextMenuInfo(menuInfo);
    if(filterId == -1) {
        return;
    }

    menu.add(0,R.string.edit);
    menu.add(0,R.string.delete_filter);

}
项目:open-rmbt    文件:RMBTSyncRequestCodeFragment.java   
@Override
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo contextMenuInfo)
{
    if (view instanceof TextView && view == codeText)
        menu.add(Menu.NONE,view.getId(),Menu.NONE,R.string.sync_request_code_context_copy);
    else
        super.onCreateContextMenu(menu,contextMenuInfo);
}
项目:chromium-for-android-56-debug-video    文件:ContextMenuHelper.java   
@Override
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) {
    assert mPopulator != null;
    mPopulator.buildContextMenu(menu,v.getContext(),mCurrentContextMenuParams);

    for (int i = 0; i < menu.size(); i++) {
        menu.getItem(i).setonMenuItemClickListener(this);
    }
}
项目:buildAPKsApps    文件:Trolly.java   
@Override
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) {
    AdapterView.AdapterContextMenuInfo info;
       try {
            info = (AdapterView.AdapterContextMenuInfo) menuInfo;
       } catch (ClassCastException e) {
           return;
       }
    Cursor cursor = (Cursor)getlistadapter().getItem(info.position);
    if (cursor == null) {
           // For some reason the requested item isn't available,do nothing
           return;
       }
       // Setup the menu header
       menu.setHeaderTitle(cursor.getString(cursor.getColumnIndex(ShoppingList.ITEM)));
       int status = cursor.getInt(cursor.getColumnIndex(ShoppingList.STATUS));

    //Add context menu items depending on current state
    switch (status) {
       case ShoppingList.OFF_LIST:
        menu.add(0,MENU_ITEM_ON_LIST,R.string.move_on_list);
        menu.add(0,MENU_ITEM_IN_TROLLEY,R.string.move_in_trolley);
        break;
       case ShoppingList.ON_LIST:
        menu.add(0,R.string.move_in_trolley);
        menu.add(0,MENU_ITEM_OFF_LIST,R.string.move_off_list);
        break;
       case ShoppingList.IN_TROLLEY:
        menu.add(0,R.string.move_off_list);
        break;
       }

       // Add context menu items that are relevant for all items
    menu.add(0,MENU_ITEM_EDIT,R.string.edit_item);
    menu.add(0,R.string.delete_item);
}
项目:buildAPKsApps    文件:SimplyDoActivity.java   
@Override
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo)
{
    Log.v(L.TAG,"ItemsListReactor.onCreateContextMenu()");

    AdapterContextMenuInfo ctxMenuInfo = (AdapterContextMenuInfo)menuInfo;
    ListView listView = (ListView)findViewById(R.id.ItemsListView);
    ctxItem = (ItemDesc)listView.getItemAtPosition(ctxMenuInfo.position);

    menu.setHeaderTitle("Item Options");
    menu.add(Menu.NONE,EDIT_ITEM,"Edit");
    menu.add(Menu.NONE,DELETE_ITEM,"Delete");
    String toggleText;
    if(ctxItem.isstar())
    {
        toggleText = "Remove Star";
    }
    else
    {
        toggleText = "Add Star";
    }
    menu.add(Menu.NONE,TOGGLE_STAR,toggleText);
    if(dataViewer.getListData().size() > 1)
    {
        menu.add(Menu.NONE,MOVE_ITEM,"Move To");
    }
}
项目:buildAPKsApps    文件:SimplyDoActivity.java   
@Override
public void onCreateContextMenu(ContextMenu menu,"ListsListReactor.onCreateContextMenu()");

    AdapterContextMenuInfo ctxMenuInfo = (AdapterContextMenuInfo)menuInfo;
    ListView listView = (ListView)findViewById(R.id.ListsListView);
    ctxList = (ListDesc)listView.getItemAtPosition(ctxMenuInfo.position);

    menu.setHeaderTitle("List Options");
    menu.add(Menu.NONE,EDIT_LIST,DELETE_LIST,"Delete");
}
项目:buildAPKsApps    文件:BarrageList.java   
@Override
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) {
    menu.clear();

    menu.add(0,MENU_EDIT,R.string.menu_edit);
    menu.add(0,MENU_PAUSE,R.string.menu_pause);
    menu.add(0,MENU_DELETE,R.string.menu_delete);
}
项目:buildAPKsApps    文件:RecipientsEditor.java   
@Override
protected ContextMenuInfo getContextMenuInfo() {
    if ((mLongpressedPosition >= 0)) {
        Spanned text = getText();
        int start = mTokenizer.findTokenStart(text,mLongpressedPosition);
        int end = mTokenizer.findTokenEnd(text,start);

        if (end != start) {
            Recipient r = getRecipientAt(getText(),start,end);
            return new RecipientContextMenuInfo(r);
        }
    }
    return null;
}
项目:Huochexing12306    文件:MonitorMangAty.java   
private void setListViewContextMenuWithDel() {
    lvMang.setonCreateContextMenuListener(new OnCreateContextMenuListener() {

        @Override
        public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) {
            intCurrDataPos = ((AdapterContextMenuInfo) menuInfo).position;
            menu.add(0,"删除");
        }
    });
}
项目:Huochexing12306    文件:MonitorMangAty.java   
private void setListViewContextMenuWithDel_Resume() {
    lvMang.setonCreateContextMenuListener(new OnCreateContextMenuListener() {

        @Override
        public void onCreateContextMenu(ContextMenu menu,"删除");
            menu.add(0,1,"恢复所有已暂停车次");
        }
    });
}
项目:aos-Video    文件:SubtitlesWizardActivity.java   
@Override
public void onCreateContextMenu(ContextMenu menu,menuInfo);

    AdapterContextMenuInfo adapterMenuInfo = (AdapterContextMenuInfo)menuInfo;
    mPosition = adapterMenuInfo.position;

    ItemData itemData = getItemData(mPosition);
    if (itemData.type == ITEM_DATA_TYPE_SEParaTOR || itemData.type == ITEM_DATA_TYPE_MESSAGE) {
        // No contextual menu for separators or messages
        return;
    }

    // Show the name of the file in the header
    File file = new File(itemData.path);
    menu.setHeaderTitle(file.getName());

    if (itemData.type == ITEM_DATA_TYPE_CURRENT) {
        // Contextual menu for current subtitles files
        menu.add(0,R.string.subtitles_wizard_delete,R.string.subtitles_wizard_delete);
    }
    else {
        // Contextual menu for available subtitles files
        menu.add(0,R.string.subtitles_wizard_associate,R.string.subtitles_wizard_associate);
        menu.add(0,R.string.subtitles_wizard_delete);
    }
}
项目:aos-Video    文件:browserActivity.java   
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) {
    if (DBG)
        Log.d(TAG,"onCreateContextMenu");
    if ((mCoverRoll != null) && v.equals(mCoverRoll)) {
        mCoverRoll.createContextMenu(this,menu);
    }
    super.onCreateContextMenu(menu,menuInfo);
}
项目:buildAPKsSamples    文件:Notepadv2.java   
@Override
public void onCreateContextMenu(ContextMenu menu,menuInfo);

       // Todo: fill in rest of method
}
项目:android-mrz-reader    文件:CaptureActivity.java   
@Override
public void onCreateContextMenu(ContextMenu menu,menuInfo);
    if (v.equals(ocrResultView)) {
        menu.add(Menu.NONE,OPTIONS_copY_RECOGNIZED_TEXT_ID,"copy recognized text");
        menu.add(Menu.NONE,OPTIONS_SHARE_RECOGNIZED_TEXT_ID,"Share recognized text");
    } else if (v.equals(translationView)) {
        menu.add(Menu.NONE,OPTIONS_copY_TRANSLATED_TEXT_ID,"copy translated text");
        menu.add(Menu.NONE,OPTIONS_SHARE_TRANSLATED_TEXT_ID,"Share translated text");
    }
}
项目:encdroidMC    文件:EDFileChooserActivity.java   
public void onCreateContextMenu(ContextMenu menu,menuInfo);
    MenuInflater inflater = getMenuInflater();
    if (mMode == FILE_PICKER_MODE) {
        inflater.inflate(R.menu.file_picker_context,menu);
    } else {
        inflater.inflate(R.menu.file_chooser_context,menu);
    }
}
项目:firebase-testlab-instr-lib    文件:NotesList.java   
@Override
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) {
    AdapterView.AdapterContextMenuInfo info;
    try {
         info = (AdapterView.AdapterContextMenuInfo) menuInfo;
    } catch (ClassCastException e) {
        Log.e(TAG,e);
        return;
    }

    Cursor cursor = (Cursor) getlistadapter().getItem(info.position);
    if (cursor == null) {
        // For some reason the requested item isn't available,do nothing
        return;
    }

    // Inflate menu from XML resource
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.list_context_menu,menu);

    // Set the context menu header
    menu.setHeaderTitle(cursor.getString(COLUMN_INDEX_TITLE));

    // Append to the
    // menu items for any other activities that can do stuff with it
    // as well.  This does a query on the system for any activities that
    // implement the ALTERNATIVE_ACTION for our data,adding a menu item
    // for each one that is found.
    Intent intent = new Intent(null,Uri.withAppendedpath(getIntent().getData(),Integer.toString((int) info.id) ));
    intent.addCategory(Intent.CATEGORY_ALTERNATIVE);
    menu.addIntentOptions(Menu.CATEGORY_ALTERNATIVE,new ComponentName(this,NotesList.class),null,intent,null);
}
项目:XPrivacy    文件:ActivityApp.java   
@Override
public void onCreateContextMenu(ContextMenu menu,menuInfo);

    // Check if running
    boolean running = false;
    ActivityManager activityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
    for (RunningAppProcessInfo info : activityManager.getRunningAppProcesses())
        if (info.uid == mAppInfo.getUid())
            running = true;

    PackageManager pm = getPackageManager();
    List<String> listPackageNames = mAppInfo.getPackageName();
    List<String> listApplicationName = mAppInfo.getApplicationName();
    for (int i = 0; i < listPackageNames.size(); i++) {
        Menu appMenu = (listPackageNames.size() == 1) ? menu : menu.addSubMenu(i,listApplicationName.get(i));

        // Launch
        MenuItem launch = appMenu.add(i,MENU_LAUNCH,getString(R.string.menu_app_launch));
        if (pm.getLaunchIntentForPackage(listPackageNames.get(i)) == null)
            launch.setEnabled(false);

        // Settings
        appMenu.add(i,MENU_SETTINGS,getString(R.string.menu_app_settings));

        // Kill
        MenuItem kill = appMenu.add(i,MENU_KILL,getString(R.string.menu_app_kill));
        kill.setEnabled(running && PrivacyManager.isApplication(mAppInfo.getUid()));

        // Play store
        MenuItem store = appMenu.add(i,MENU_STORE,getString(R.string.menu_app_store));
        if (!Util.hasMarketLink(this,listPackageNames.get(i)))
            store.setEnabled(false);
    }
}
项目:Cable-Android    文件:VerifyIdentityActivity.java   
@Override
public void onCreateContextMenu(ContextMenu menu,menuInfo);

  if (fingerprint != null) {
    MenuInflater inflater = getActivity().getMenuInflater();
    inflater.inflate(R.menu.verify_display_fragment_context_menu,menu);
  }
}
项目:yaacc-code    文件:PlayerListItemClickListener.java   
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) {
    menu.setHeaderTitle(v.getContext().getString(R.string.browse_context_title));
    ArrayList<String> menuItems = new ArrayList<String>();
    menuItems.add(v.getContext().getString(R.string.open));
    menuItems.add(v.getContext().getString(R.string.exitactivity));

    for (int i = 0; i < menuItems.size(); i++) {
        menu.add(Menu.NONE,menuItems.get(i));
    }
}
项目:GCSApp    文件:ContactListFragment.java   
@Override
public void onCreateContextMenu(ContextMenu menu,menuInfo);
    toBeProcessUser = (EaseUser) listView.getItemAtPosition(((AdapterContextMenuInfo) menuInfo).position);
    toBeProcessUsername = toBeProcessUser.getUsername();
    getActivity().getMenuInflater().inflate(R.menu.em_context_contact_list,menu);
}
项目:q-mail    文件:MessageListFragment.java   
@Override
public void onCreateContextMenu(ContextMenu menu,menuInfo);

    AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
    Cursor cursor = (Cursor) listView.getItemAtPosition(info.position);

    if (cursor == null) {
        return;
    }

    getActivity().getMenuInflater().inflate(R.menu.message_list_item_context,menu);
    menu.findItem(R.id.debug_delete_locally).setVisible(BuildConfig.DEBUG);

    contextMenuUniqueId = cursor.getLong(uniqueIdColumn);
    Account account = getAccountFromCursor(cursor);

    String subject = cursor.getString(SUBJECT_COLUMN);
    boolean read = (cursor.getInt(READ_COLUMN) == 1);
    boolean flagged = (cursor.getInt(FLAGGED_COLUMN) == 1);

    menu.setHeaderTitle(subject);

    if (selected.contains(contextMenuUniqueId)) {
        menu.findItem(R.id.select).setVisible(false);
    } else {
        menu.findItem(R.id.deselect).setVisible(false);
    }

    if (read) {
        menu.findItem(R.id.mark_as_read).setVisible(false);
    } else {
        menu.findItem(R.id.mark_as_unread).setVisible(false);
    }

    if (flagged) {
        menu.findItem(R.id.flag).setVisible(false);
    } else {
        menu.findItem(R.id.unflag).setVisible(false);
    }

    if (!messagingController.iscopyCapable(account)) {
        menu.findItem(R.id.copy).setVisible(false);
    }

    if (!messagingController.isMoveCapable(account)) {
        menu.findItem(R.id.move).setVisible(false);
        menu.findItem(R.id.archive).setVisible(false);
        menu.findItem(R.id.spam).setVisible(false);
    }

    if (!account.hasArchiveFolder()) {
        menu.findItem(R.id.archive).setVisible(false);
    }

    if (!account.hasspamFolder()) {
        menu.findItem(R.id.spam).setVisible(false);
    }

}
项目:q-mail    文件:ManageIdentities.java   
@Override
public void onCreateContextMenu(ContextMenu menu,menuInfo);
    menu.setHeaderTitle(R.string.manage_identities_context_menu_title);
    getMenuInflater().inflate(R.menu.manage_identities_context,menu);
}
项目:GitHub    文件:FreeFlowContainer.java   
ContextMenuInfo createContextMenuInfo(View view,int sectionIndex,int positionInSection,long id) {
    return new AbsLayoutContainerContextMenuInfo(view,sectionIndex,positionInSection,id);
}
项目:CCDownload    文件:UploadFragment.java   
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) {
    menu.setHeaderTitle("操作");
    menu.add(0,"删除");
}

我们今天的关于在附加到NotifyIcon的ContextMenu中延迟单击事件的分享就到这里,谢谢您的阅读,如果想了解更多关于之间的区别、android – onCreateContextMenu使用ContextMenuInfo的null值调用、android.view.ContextMenu.ContextMenuInfo的实例源码的相关信息,可以在本站进行搜索。

本文标签: