【发布时间】:2014-10-25 11:13:38
【问题描述】:
现在我正在开发一个 Android 应用程序,该应用程序需要允许用户剪切复制并粘贴到 editText 字段中。但是,当我从其他地方复制格式化字符串(即带下划线的字符串)并将其粘贴到 editText 字段时,它会将其显示为格式化版本。如何删除它?
我尝试通过添加addTextChangedListener 来添加textwatcher,在文本更改后我只执行edittext.setText(s.toString()+""),但这会创建一个无限循环。 :(
请帮忙!提前致谢。
编辑---- 我通过设置 setCustomSelectionActionModeCallback 取得了一些进展
editDestination_.setCustomSelectionActionModeCallback(new Callback() {
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {return true;}
@Override
public void onDestroyActionMode(ActionMode mode) {}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
menu.removeItem(android.R.id.paste);
menu.removeItem(android.R.id.selectAll);
menu.add(0, CUSTOM_PASTE, 0, "Paste").setIcon(R.drawable.paste_ic);
return true;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case CUSTOM_PASTE:
edittext.setText(readFromClipboard(aContext_));
// Finish and close the ActionMode
mode.finish();
return true;
default:
break;
}
return false;
}
});
在我意识到我的手机上有两种类型的剪切/复制/粘贴之前,这工作得很好。一种是当编辑文本为空并且我长按该字段时。这会弹出一个弹出菜单。另一种是当字段中有文本时,当我长按时,这会在我的操作栏下方弹出一个剪切/复制/粘贴栏。我上面的代码只影响 bar-below-action bar 一。 :(
【问题讨论】:
标签: java android android-edittext copy-paste