zoukankan      html  css  js  c++  java
  • Android之剪贴薄实现

    1. 首先继承EditText

    2. 并重写onTouchEvent方法

      public boolean onTouchEvent(MotionEvent event)
      {
        Editable ed=this.getEditableText();
        //获得action
        int action = event.getAction();
        //用来显示文本的Layout布局
        Layout layout = this.getLayout();

    //获得第几行 

        int pointY = layout.getLineForVertical(getScrollY()+(int)event.getY());
        switch(action)
        {
          case MotionEvent.ACTION_DOWN: 
            /* 手指按下时记忆起始点,第一个是行数,第二个是开始点 */
            startPoint=layout.getOffsetForHorizontal(pointY,event.getX());

    //第一个参数Editable是子类 , 第二个参数是开始点

            Selection.setSelection(ed, startPoint);
            break;
          case MotionEvent.ACTION_MOVE:
            /* 手指移动时记忆終止点 */
            endPoint=layout.getOffsetForHorizontal(pointY,event.getX());
            Selection.setSelection(ed,startPoint,endPoint);
            break;
        }
        return true;
      }

     

    3. 根据上面的startPoint与endPoint截取字符串

    public String getSelectedText() { return this.getText().toString().substring(startPoint,endPoint); } 

    4. 获得 ClipboardManager

     ClipboardManage  cManager  = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);

    5. 复制已截取字符串 ev是EditeText的实例

    cManager.setText(ev.getSelectedText());

    6. 获得 已复制字符串

    setText(cManager.getText()); 

  • 相关阅读:
    唤醒控件曾经拥有的能力(重新继承是可以使用的.)
    为ASP.NET MVC应用程序创建更复杂的数据模型
    Akka入门实例
    最火的.NET开源项目(转)
    Roslyn 编译平台概述
    C#开发157
    ASP.NET MVC学习之控制器篇
    AngularJS中数据双向绑定(two-way data-binding)
    订单系统中并发问题和锁机制的探讨
    Visual Studio 编辑器
  • 原文地址:https://www.cnblogs.com/lee0oo0/p/2520012.html
Copyright © 2011-2022 走看看