如何在android中启用editText剪切/复制/粘贴功能?

时间:2017-04-05 12:11:11

标签: android

请不要将此问题标记为重复,因为此内容仅在一个edittext中工作,其中inputtype设置为phone,但它在其他edittext案例中不起作用,这是我正在运行的edittext

<EditText
            android:layout_width="match_parent"
            android:layout_marginLeft="5dp"
            android:textColor="@android:color/background_dark"
            android:padding="@dimen/margin_15"
            android:textColorHint="@android:color/darker_gray"

            android:hint="Mobile Number"
            android:imeOptions="actionNext"
            android:inputType="phone"
            android:layout_height="wrap_content"
            android:background="@null"
            android:id="@+id/ed_phone"/> 

和其中一个不起作用

<EditText
        android:layout_width="match_parent"
        android:layout_marginLeft="15dp"
        android:textColor="@android:color/background_dark"
        android:hint="@string/email"
        android:inputType="textEmailAddress"
        android:cursorVisible="true"
        android:imeOptions="actionNext"
        android:layout_height="wrap_content"
        android:textColorHint="@android:color/darker_gray"
        android:background="@android:color/transparent"
        android:id="@+id/ed_userName"/>

这是我的App主题

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">#46C203</item>
        <item name="windowActionModeOverlay">true</item>
        <item name="android:windowActionModeOverlay">true</item>

    </style>

现在我尝试了很多方法来处理这个默认的复制/粘贴功能,没有找到对我有用的解决方案 任何帮助都会很明显

4 个答案:

答案 0 :(得分:1)

在编辑文字中添加以下行: -

   android:textIsSelectable="true"

所以你的edittext会是这样的: -

      <EditText
        android:layout_width="match_parent"
        android:layout_marginLeft="15dp"
        android:textColor="@android:color/background_dark"
        android:hint="mail"
        android:inputType="textEmailAddress"
        android:cursorVisible="true"
        android:imeOptions="actionNext"
        android:layout_height="wrap_content"
        android:textColorHint="@android:color/darker_gray"
        android:background="@android:color/transparent"
        android:id="@+id/ed_userName"
        android:textIsSelectable="true"/>

希望它可以帮到你。 :)

答案 1 :(得分:1)

终于得到了解决方案我正在使用这种方法隐藏我的键盘以触摸editext

 @Override
    public boolean dispatchTouchEvent(MotionEvent event) {
        View view = getCurrentFocus();
        boolean ret = super.dispatchTouchEvent(event);

        if (view instanceof EditText) {
            View w = getCurrentFocus();
            int scrcoords[] = new int[2];
            w.getLocationOnScreen(scrcoords);
            float x = event.getRawX() + w.getLeft() - scrcoords[0];
            float y = event.getRawY() + w.getTop() - scrcoords[1];

            if (event.getAction() == MotionEvent.ACTION_UP
                    && (x < w.getLeft() || x >= w.getRight()
                    || y < w.getTop() || y > w.getBottom()) ) {

                ((EditText)view).setError(null);
                view.clearFocus();
                InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(getWindow().getCurrentFocus().getWindowToken(), 0);
            }
        }
        return ret;
    }

这里我只需要评论这一行

view.clearFocus();

现在可行了

答案 2 :(得分:0)

您尝试粘贴的文本(来自剪贴板)应该是有效的电子邮件地址,因为您将输入类型指定为电子邮件地址,否则它将无效。一切顺利:)

答案 3 :(得分:0)

您可以尝试将此属性添加到EditText:

 android:textIsSelectable="true"

希望这有帮助。