Articles of contextmenu

如何禁用Android中特定ListView项目的上下文菜单

我知道这个问题以前被问过,答复是重写onPrepareContextMenu()/ onCreateContextMenu()。 但我不明白,没有得到任何解决scheme。 请帮助我如何禁用特定的ListView项目的上下文菜单。

Fragment中的上下文菜单使用来自不同Fragment的ListView:registerForContextMenu(getListView())

我试图寻找解决scheme,但没有发现任何符合我的情况。 我有一个扩展FragmentActivity的MainActivity和多个ListFragments。 我使用PagerSlidingTabStrip库为slidetabs和ViewPager。 碎片没有XML布局,它们只是ListFragments,它返回一个ListView,所以不需要布局。 这是一个音板应用程序,长按列表项目,允许用户设置一个声音文件作为他们的铃声,通知或报警,或保存到SD卡。 现在,所有的Fragments都可以加载自己的数据。 一切似乎没问题,但是,当我在后台加载的Fragment上使用上下文菜单时,似乎是使用来自之前加载的第一个或上一个片段的Lis​​tView,创build它之前可见的那个片段。 我的意思是说,我的MainActivity开始,它加载FragmentA,并在后台FragmentB也预装。 在onActivityCreated方法中,对于这两个片段,它使用registerForContextMenu(getListView())。 @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); // Data loading etc MyAdapter adapter = new MyAdapter(getActivity(), R.layout.data_row, data); setListAdapter(adapter); registerForContextMenu(getListView()); } 但似乎正在发生的是,FragmentB调用registerForContextMenu(getListView()),它似乎是采取当前活动的ListView,这是FragmentA的列表。 所以说,我select从上下文菜单中保存一个文件。 我长按FragmentB的第一项,但它试图保存FragmentA的第一项。 如果我只点击列表项,就会像期望的那样播放它自己的声音,但上下文菜单命令使用预载的时候可见的片段列表。 这是onCreateContextMenu。 请注意,此时它使用上下文菜单标题中的正确的项目标题。 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo; menu.setHeaderTitle(data.get(info.position).getDataName()); MenuInflater […]

Android:如何设置生成的contextMenu标题?

我创build一个如下所示的上下文菜单: @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { if(v.getId() == R.id.ListView01) { getMenuInflater().inflate(R.menu.add_contextmenu, menu); } super.onCreateContextMenu(menu, v, menuInfo); } 我怎样才能设置一个生成的标题?

将相同的上下文菜单添加到多个活动

我想弄清楚如何在多个活动中包含常见的代码段。 更具体地说,我有一个上下文菜单,我想在几个活动中包括。 我看到了这一点,但只是不明白如何扩展到多个活动。 http://developer.android.com/guide/topics/ui/menus.html 我有这个设置为Menu.java public class Menu extends Activity{ // bottom menus public static final int Menu1 = 1; public static final int Menu2 = 2; public static final int Menu3 = 3; public static final int Menu4 = 4; public static final int Menu5 = 5; public static final int Menu6 = 6; […]

在Android上从TextView复制文本

我有一个ListView ,其中每个项目是一个TextView 。 我想要启用类似于EditText的长按行为,它显示默认的上下文菜单,诸如“全部select”,“全部剪切”,“全部复制”等。 有没有简单的方法来启用这个TextView ?

Android上下文菜单创build中的getMenuInflater()方法未定义问题

我正试图在一个片段内创build一个上下文菜单项。 但是我正面临着getMenuInflater()方法的问题。 这是不明确的。 我已经导入了所有必要的软件包。 任何人都可以指出我在这里做错了吗? 这是我的代码: import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.Gravity; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.MenuInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import android.view.MenuItem; public class FeaturedFragment extends Fragment { public FeaturedFragment() { } public static final String ARG_SECTION_NUMBER = "section_number"; @Override public View onCreateView(LayoutInflater inflater, ViewGroup […]

如何使用XML文件创build上下文菜单?

我正在使用XML文件为我的ListView创build上下文菜单。 (请参阅下文)。 我也想为这个上下文菜单设置一个头。 我阅读(在http://www.mail-archive.com/android-developers@googlegroups.com/msg43062.html ),我可以在onCreateContextMenu方法中使用menu.setHeaderTitle(myContextMenuTitle)。 但是我需要在XML文件中设置它。 我怎样才能做到这一点? 以下是onCreateContextMenu方法的代码,纠正我,如果我做错了什么。这是我的context_menu.xml文件: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/open" android:title="Open"/> </menu> 这是我的onCreateContextMenu方法: @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.context_menu, menu); super.onCreateContextMenu(menu, v, menuInfo); } 这是我的创build方法: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // extras = getIntent().getExtras(); registerForContextMenu(getListView()); … }

从后面的代码显示上下文菜单

这可能是一个简单的问题,但我一直在环顾四周,找不到答案。 有没有代码来显示在Android上的上下文菜单从代码,而不是按下菜单button? 例如,当我触摸屏幕,然后它会调用上下文菜单?

Android:单击上下文菜单

我有一个扩展ListActivity的意图。 在填充列表适配器后,我使用registerForContextMenu(getListView());我的onCreate方法registerForContextMenu(getListView()); 注册一个上下文菜单。 现在正在工作,上下文菜单有它的原始function, 一旦我点击并按住一个项目,上下文菜单打开。 我可以打开上下文菜单(不必按住列表)吗? 所有的帮助表示赞赏。

如何处理多片段活动中的onContextItemSelected?

我目前正试图使我的应用程序使用“适用于Android v4的兼容性库”,甚至为Android 1.6用户提供片段使用的好处。 上下文菜单的实现似乎很棘手: 应用程序的主要活动是扩展FragmentActivity类。 这些片段都是基于扩展片段类的一个类。 片段类在其onCreateView()方法中调用registerForContextMenu() ,并覆盖onCreateContextMenu()和onContextItemSelected()方法 。 对于onCreateContextMenu(),这工作得很好。 上下文菜单从资源文件中膨胀,并根据所选项目(基于listView …即使片段不是ListFragment)稍作修改。 select上下文菜单项时会发生此问题。 为所有当前存在的片段调用onContextItemSelected() ,从第一个添加的片段开始。 在我的情况下,片段是用来显示文件夹结构的内容。 当打开一个子文件夹片段的上下文菜单并select一个菜单项时, onContextItemSelected()首先在上层被调用(这取决于在这一刻允许/可见的片断数量)。 现在,我通过活动级别的字段使用一个解决方法,该字段包含调用其onCreateContextMenu()的最后一个片段的标记。 这样,当存储标记与getTag()不相同时,我可以在onContextItemSelected()的开头调用“return super.onContextItemSelected(item)”。 但是这种方法对我来说看起来有点肮脏。 为什么onContextItemSelected()在所有片段上调用? 而不只是一个调用onCreateContextMenu() ? 什么是最优雅的方式来处理这个?