Articles of contextmenu

获取onCreateContextMenu中的行位置

我正在尝试创建一个上下文菜单,根据单击的行更改可用选项。 但是我无法弄清楚如何在列表视图中获取被单击的行的行位置,直到创建菜单之后。

如何在Android中创建带单选按钮的子菜单?

我在一个简单的情况下遇到了问题(至少看起来像这样)。 我需要动态创建一个上下文菜单的子菜单,并为每个项目提供一个radiobox。 我做了很多试验。 当我调用menu.setGroupCheckable(0, true, true) ,默认情况下菜单本身为0,它会按预期在每个菜单项的右侧显示单选按钮,但我需要这个用于子菜单。 所以我有以下代码: SubMenu sub = menu.addSubMenu(R.string.name); int count = 1000; for(String e : someList) { MenuItem item = sub.add(1, count, count, e); count++; } menu.setGroupCheckable(1, true, true); 在这种情况下,我既没有看到放射线框,也没有看到子菜单中的checkbox。 然后我写了下面的代码: SubMenu sub = menu.addSubMenu(R.string.name); int count = 1000; for(String e : someList) { MenuItem item = sub.add(1, count, count, e); […]

从Android上的TextView复制文本

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

EditText:在文本选择处理程序单击事件上禁用粘贴/替换菜单popup窗口

我的目标是拥有一个没有花哨function的EditText ,只需要文本选择处理器就可以更轻松地移动光标 – 所以没有上下文菜单或popup窗口。 根据此解决方案 ,我通过使用ActionMode Callback事件禁用了文本编辑function操作栏(复制/粘贴等)的外观。 当文本存在于字段中并且文本中出现单击时,中间的中间文本选择句柄(见下图)仍然会出现。 大! 我想保持这种行为。 我不想要的是单击文本选择句柄本身时出现的“粘贴”菜单。 我还通过在样式XML中设置android:longClickable=”false”来禁用EditText的长按输入。 禁用长按可防止单击鼠标(即长按)时出现“粘贴/替换”菜单,但是当在文本中单击鼠标(单触)时,会出现文本选择手柄,并且单击文本选择手柄本身,然后出现“粘贴”菜单选项(当剪贴板中有文本时)。 这就是我想要阻止的。 从我从源头看到的内容, ActionPopupWindow是PASTE / REPLACE选项的popup窗口。 ActionPopupWindow是公共类android.widget.Editor中私有抽象类HandleView中的受保护variables(mActionPopupWindow)… 如果没有禁用剪贴板服务或编辑Android源代码,有没有办法阻止它显示? 我试图为android:textSelectHandleWindowStyle定义一个新的样式android:textSelectHandleWindowStyle ,并设置android:visibility to gone ,但它没有用(app会冻结一段时间,否则会显示)。

自定义ListView和上下文菜单。 怎么弄呢?

我的应用程序中有两个布局文件。 我还有Activity扩展ListActivity。 此活动的每个项目都会考虑item.xml布局文件。 我在长按项目时尝试获取上下文菜单,但我没有看到它。 在我的活动中,我尝试registerForContextMenu(getListView())并覆盖两个方法 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle bundle = this.getIntent().getExtras(); registerForContextMenu(getListView()); new PopulateAdapterTask().execute(ACTION_SELECT); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.context_menu, menu); } @Override public boolean onContextItemSelected(MenuItem item) { AdapterView.AdapterContextMenuInfo info; try { info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); } catch (ClassCastException e) […]

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

这可能是一个简单的问题,但我一直在环顾四周,找不到答案。 是否有任何代码可以从代码中显示Android上下文菜单,而不是按菜单按钮? 例如,当我触摸屏幕时,它会调用上下文菜单吗?

如何使用XML文件创建Context Menu?

我正在使用XML文件为我的ListView创建上下文菜单。 (请参阅下文)。 我还想为此上下文菜单设置标题。 我阅读( http://www.mail-archive.com/android-developers@googlegroups.com/msg43062.html )我可以在onCreateContextMenu方法中使用menu.setHeaderTitle(myContextMenuTitle)。 但我需要在XML文件中设置它。 我怎么能做到这一点? 以下是onCreateContextMenu方法的代码,如果我做错了,请更正我。这是我的context_menu.xml文件: 这是我的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); } 这是我的onCreate方法: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // extras = getIntent().getExtras(); registerForContextMenu(getListView()); … }

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

我试图在片段内创建一个上下文菜单项。 但是我遇到了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 […]

Android:单击上下文菜单

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

禁用EditText上下文菜单

我正在为传统的蒙古语制作一个垂直的EditText 。 我已经通过在旋转的ViewGroup嵌入稍微修改过的EditText成功实现它。 我需要创建一个完全自定义的上下文菜单,因为系统不支持垂直文本,并且在旋转ViewGroup时也不会旋转。 所以我想完全禁用系统上下文菜单。 请注意,这与仅仅尝试禁用复制/粘贴/等的这些问题不同: 如何禁用从/到EditText的复制/粘贴 EditText:在文本选择处理程序单击事件上禁用粘贴/替换菜单popup窗口 如何在android EditText中禁用粘贴选项 Android:如何在Edittext中完全禁用复制和粘贴function 虽然我没有在模拟器中出现上下文菜单,但我将它出现在我的Android 5.0.2小米手机中。 我努力了: setCustomSelectionActionModeCallback “解决方案” setLongClickable(false); “解” onTouchEvent “解决方案” 我对hacks持开放态度,但我需要它能够在各种设备上持续工作。 Mark Murphy(一个Commons Guy)回复了另一个尝试做类似事情的用户的回复: 我怀疑,即使你拿出一个答案,它也无法在各种设备上运行。 设备制造商倾向于为EditText推出自己的“上下文菜单”,从而使开发人员尝试将项目添加到该上下文菜单中。 我的猜测是,试图阻止该上下文菜单会产生类似的结果。 我运气不好吗? 我现在唯一能想到的就是从头开始完全重写TextView和EditText (好吧,通过修改Android源代码)。 我知道其他人做了类似的事,但他的代码不是开源的。 在采取这一重大步骤之前,我想尝试在Stack Overflow上寻求更简单的解决方案。 更新:我一直在尝试修改过去两天的TextView源代码,看起来像是一个6个月的项目。 这是一大堆相互关联的课程。 我需要另一个解决方案,但我没有想法。 MVCE 这是我能想到的最简单的方法来重现问题。 我的自定义EditText没有必要。 布局有一个EditText ,它替换了默认项目Hello World的TextView 。 我将min API更改为11以避免处理已弃用的方法。 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle […]