如何避免在旋转端口登陆Android4.X后在智能手机中剪切/复制/粘贴?

Posted

技术标签:

【中文标题】如何避免在旋转端口登陆Android4.X后在智能手机中剪切/复制/粘贴?【英文标题】:How to avoid cut/copy/paste in smart phone after rotation port to land on Android4.X? 【发布时间】:2012-12-07 19:12:02 【问题描述】:

我正在努力避免在智能手机中剪切/复制/粘贴(平板电脑很好)。 它在端口模式下很好,但在陆地模式下 EditText 显示一个按钮 Next。 选择文本后,next 按钮转换为具有复制、剪切和粘贴选项的编辑按钮。

那么当编辑按钮出现时,有什么方法可以在旋转后禁用剪切/复制。

我正在关注此链接。 How to disable copy/paste from/to EditText

【问题讨论】:

我正在使用 Google Nexus 智能手机。 这个问题没有答案。 【参考方案1】:

我想你可以用这个:

http://developer.android.com/reference/android/widget/TextView.html#attr_android:imeOptions

带标志:

flagNoAccessoryAction

与自定义动作结合使用,表示当输入法为全屏时,该动作不应作为辅助按钮使用。请注意,通过设置此标志,可能会出现用户根本无法使用该操作的情况。设置此项通常意味着您认为显示正在编辑的文本比您提供的操作更重要。 对应于 IME_FLAG_NO_ACCESSORY_ACTION。

【讨论】:

感谢您的回答。我已经对此进行了测试,但根据我的功能,下一步按钮应该在那里。使用后,什么都没有,只有文本。 通过那里的按钮,我认为您无法停止复制粘贴,因为一旦您选择文本,它就会被这些功能取代.. 这是果冻豆的默认行为。我们想要下一个按钮,但不希望这个下一个按钮在选择文本后更改为编辑。【参考方案2】:

我会坚持让您禁用长按 EditText,因为当您长按 EditText 中选定的文本时会出现 Edit 按钮。

et_text.setLongClickable(false);

另外,您可以清除ClipboardManager,这样如果您已经有一些已经复制到剪贴板的内容将被清除使用,

ClipboardManager manager = (ClipboardManager) 
                                 getSystemService(Context.CLIPBOARD_SERVICE);
manager.setText("");

【讨论】:

感谢回复。我认为 ClipboardManger 在 3.2 或更高版本中已被弃用。 不推荐使用的类是import android.text.ClipboardManager,但您可以使用import android.content.ClipboardManager,也可以在EditText上设置long click false。 No longclick 不工作,我已经反复测试了..我使用的是 4.0.3 版本并使用 google nexus edittext.setLongClickable(false); ClipboardManager maner = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); maner.setText("");..code【参考方案3】:

试试这个..

your_edit_text.setCustomSelectionActionModeCallback(new Callback() 
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) 
        return false;
    

    public void onDestroyActionMode(ActionMode mode)                   
    

    public boolean onCreateActionMode(ActionMode mode, Menu menu) 
        return false;
    

    public boolean onActionItemClicked(ActionMode mode, MenuItem item) 
        return false;
    
);

【讨论】:

【参考方案4】:

尝试使用这两行。它可以帮助你:

 EditText.setFocusable(false);
 EditText.setFocusableInTouchMode(false);

【讨论】:

【参考方案5】:

因为我们不知道你到目前为止尝试了什么......以及你在代码中实际做了什么......除此之外......这里有一个链接......类似于你的问题,我认为这会帮助你.. Disabling the fullscreen editing view for soft keyboard input in landscape?

【讨论】:

【参考方案6】:

@Cobra - 在你的代码中设置EditText.setEditable(false);,或者你也可以在你的xml中设置这个属性。 这个属性做得很好,但如果任何情况下这都行不通..设置setFocusable也是假的.. 这个解决方案对我有用..

【讨论】:

不工作..因为在我的情况下,我每次编辑文本时都需要设置值。使用后我无法触摸我的编辑文本。 我已经提到我正在使用果冻豆..可能这在这个版本中不起作用。 顺便说一下使用EditText.setEnable(false); .您可以在该特定编辑文本中提供输入。如果是,那么你很棒。

以上是关于如何避免在旋转端口登陆Android4.X后在智能手机中剪切/复制/粘贴?的主要内容,如果未能解决你的问题,请参考以下文章

避免服务器成为肉鸡的应对措施

如何避免在过滤器后在 dispatcherServlet 中关闭输入流

httpclient模拟登陆成功后在浏览器中打开登陆后的页面

旋转后在 UICollectionView 中保留第一个可见项目

旋转后在 3D 世界中翻译的正确方法?

如何避免 OpenGL 中的光旋转?