android中复制与粘贴功能的实现

Posted kaolagirl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中复制与粘贴功能的实现相关的知识,希望对你有一定的参考价值。

话不多说直接上代码

1.java代码
public class GoodSearch extends AppCompatActivity implements View.OnClickListener{
 
    private static final String TAG = "橘子";
    
    private TextView text;
    private Button copyBtn,pasteBtn;
    private ClipData mClipData;   //剪切板Data对象
    private ClipboardManager mClipboardManager;   //剪切板管理工具类
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_good_search);
        
        // 1. 注册mClipboardManager
        mClipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
        initView();
    }

    /**
     * todo initView 初始化控件
     */
    private void initView() {
        text = findViewById(R.id.text);
        copyBtn = findViewById(R.id.copyBtn);
        pasteBtn = findViewById(R.id.pasteBtn);
        copyBtn.setOnClickListener(this);
        pasteBtn.setOnClickListener(this);
    }

    /**
     * todo 点击事件
     * @param v
     */
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.copyBtn:
                String mData = text.getText().toString();
                //创建一个新的文本clip对象
                mClipData = ClipData.newPlainText("Simple text",mData);
                //把clip对象放在剪贴板中
                mClipboardManager.setPrimaryClip(mClipData);
                Toast.makeText(getApplicationContext(), "复制成功!",
                        Toast.LENGTH_SHORT).show();
                break;
            case R.id.pasteBtn:
                mClipData = mClipboardManager.getPrimaryClip();
                //获取到剪贴板中的内容
                ClipData.Item item = mClipData.getItemAt(0);
                String txt = item.getText().toString();
                Log.i(TAG, "onClick: "+txt);
                break;
        }
    }
}
2.xml
  <LinearLayout
        android:layout_marginTop="20dp"
        android:gravity="center"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/text"
            android:text="文本内容文本内容"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <Button
            android:id="@+id/copyBtn"
            android:text="复制"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <Button
            android:id="@+id/pasteBtn"
            android:text="粘贴"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </LinearLayout>
3.效果图

在这里插入图片描述

以上是关于android中复制与粘贴功能的实现的主要内容,如果未能解决你的问题,请参考以下文章

Android课程---Android Studio使用小技巧:提取方法代码片段

Android中复制及粘贴功能

Virtual Box虚拟机怎么实现与客户机实现复制粘贴功能?

VB中如何实现复制粘贴?

Android:如何在 Edittext 中完全禁用复制和粘贴功能

Android:使用支持片段管理器时复制片段