2012-10-16 21 views

回答

1

我敢肯定,这是只发生在特定的API或设备。它可能在其他应用程序上也有不同的工作。最终,我没有看到任何真正的方法来禁用设备本地的东西。另外,那里的设备非常庞大,所以即使你找到了方法,你也很难禁用它。

2

该指针是一个系统助手,允许用户轻松地移动光标(更准确地说,不仅仅是触摸EditText)。所以我不知道你是否可以删除它,但我相信这不是一个好主意。

此外,这是一种指针,将根据设备不同的风格。如果你看看SDK的android源代码,你会发现一些叫做text_select_handle_XXX.png的drawable我想你会发现如何在你自己的主题中改变系统风格。

8

正如MarvinLabs指出的那样,这是Android SDK中的一组可绘制对象。他们可以被覆盖。

  1. 查找您的SDK平台这些图片:

    • text_select_handle_left.png
    • text_select_handle_middle.png
    • text_select_handle_right.png
  2. 在将其复制到您的可绘制文件夹,所以你有一个本地副本参考。您可以更改这些颜色,使其变为空白或任何您想要的。请注意,正如MarvinLabs所说,将它们完全删除可能并不明智,因为它们可帮助用户选择要剪切和复制的文本。

  3. 如果您尚未在styles.xml中定义自定义主题,请定义一个。然后将这些项目添加到它:

_

<style name="CustomTheme" parent="@android:style/Theme.Holo.Light"> 
    <item name="android:textSelectHandleLeft">@drawable/text_select_handle_left</item> 
    <item name="android:textSelectHandleRight">@drawable/text_select_handle_right</item> 
    <item name="android:textSelectHandle">@drawable/text_select_handle_middle</item> 
</style> 

BEFORE:

before

AFTER:

after

(不同EditTexts但你的想法)

0

您可以用自定义编程EditText做到这一点。您需要创建一个自定义的MovementMethod实现,其中一个canSelectArbitrarily()返回false。然后你只需覆盖EditText.getDefaultMovementMethod()来回报您的CustomMovementMethod

public class MyEditText extends EditText { 
    private CustomMovementMethod customMovementMethod = new CustomMovementMethod(); 
    @Override 
    public MovementMethod getDefaultMovementMethod() { 
     return customMovementMethod; 
    } 
} 

private class CustomMovementMethod implements MovementMethod { 

    @Override 
    public boolean canSelectArbitrarily() { 
     return false; 
    } 

    @Override 
    public void initialize(TextView widget, Spannable text) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public boolean onGenericMotionEvent(TextView widget, Spannable text, MotionEvent event) { 
     // TODO Auto-generated method stub 
     return false; 
    } 

    @Override 
    public boolean onKeyDown(TextView widget, Spannable text, int keyCode, KeyEvent event) { 
     // TODO Auto-generated method stub 
     return false; 
    } 

    @Override 
    public boolean onKeyOther(TextView view, Spannable text, KeyEvent event) { 
     // TODO Auto-generated method stub 
     return false; 
    } 

    @Override 
    public boolean onKeyUp(TextView widget, Spannable text, int keyCode, KeyEvent event) { 
     // TODO Auto-generated method stub 
     return false; 
    } 

    @Override 
    public void onTakeFocus(TextView widget, Spannable text, int direction) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public boolean onTouchEvent(TextView widget, Spannable text, MotionEvent event) { 
     // TODO Auto-generated method stub 
     return false; 
    } 

    @Override 
    public boolean onTrackballEvent(TextView widget, Spannable text, MotionEvent event) { 
     // TODO Auto-generated method stub 
     return false; 
    } 

} 
相关问题