我在textview上使用 textIsSelectable 属性,它允许用户复制textview的文本。现在,当我在textview上长按时,菜单有复制,selectAll翻译和共享选项。我不想在该菜单中翻译和分享选项..
我正在使用xamarin进行开发,请帮助我..提前致谢..
答案 0 :(得分:0)
删除共享选项,您可以使用:
public override void OnActionModeStarted(ActionMode mode)
{
IMenu menu = mode.Menu;
menu.RemoveItem(Android.Resource.Id.ShareText);
base.OnActionModeStarted(mode);
}
但我找不到翻译ID,作为替代选择,您可以自定义ContextMenu
:
public override void OnCreateContextMenu(IContextMenu menu, View v, IContextMenuContextMenuInfo menuInfo)
{
base.OnCreateContextMenu(menu, v, menuInfo);
MenuInflater.Inflate(Resource.Menu.cmenu, menu);
}
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/select_all"
android:title="select all"
/>
<item android:id="@+id/copy"
android:title="copy"
/>
</menu>
单击菜单项时:
public override bool OnContextItemSelected(IMenuItem item)
{
switch (item.ItemId)
{
case Resource.Id.select_all:
//Select All the TextView text
return true;
case Resource.Id.copy:
ClipboardManager clipboard = (ClipboardManager)GetSystemService(ClipboardService);
clipboard.Text = myTextView.Text;
return true;
default:
return base.OnContextItemSelected(item);
}
}