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()); 

  • 相关阅读:
    Parquet文件结构笔记
    parquet 简介
    Kubernetes 路由问题&网络问题
    postgresql:terminate hung query
    Python 动态加载并下载"梨视频"短视频
    Python 豆瓣mv爬取
    Ubuntu 硬盘分区只读,重新挂载为读写分区之后,文件依然创建出错
    Ubuntu 装机软件
    iTOP4412开发板相关内容
    linux driver ------ GPIO的驱动编写和调用
  • 原文地址:https://www.cnblogs.com/lee0oo0/p/2520012.html
Copyright © 2011-2022 走看看