天天看点

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中复制与粘贴功能的实现