android textView实现长按复制

本文介绍了在Android中实现TextView长按复制的三种方法:1)通过XML设置textIsSelectable属性;2)在代码中设置并更改TextView内容;3)利用剪贴板API实现长按直接复制,并显示提示信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、
    <TextView
        android:id="@+id/tvCopyCust2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:hint="aaaaaaa"
        android:text="Hello World!222222"
        android:textIsSelectable="true">
注意标红的地方,这种方式若只在xml文件里设置,长按TextView会出现一个对话框先是全选,然后复制
2、
tvCopyCust2 = (TextView) findViewById(R.id.tvCopyCust2);
tvCopyCust2.setTextIsSelectable(true);
tvCopyCust2.setText("aaaaaaaaaaaaa");

若是代码设置TextView.setTextIsSelectable(true),TextView.setText("aaaaa");长按TextView弹出第一个对话框就是复制
3、使用剪贴板实现,没有对话框出现长按TextView就实现了复制
import android.view.View;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.widget.TextView;
import android.widget.Toast;

/**
 * Created by wanghailong on 2017/6/28.
 */

public class CopyUtil {
    public static void copy(final Context ctx, final TextView tv) {
        if (null == tv || null == ctx) {
            return;
        }
        tv.setOnLongClickListener(new android.view.View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {
                // 复制到剪贴板管理器
                ClipboardManager cmb = (ClipboardManager) ctx.getSystemService(Context.CLIPBOARD_SERVICE);
                ClipData myClip;
                myClip = ClipData.newPlainText("text", tv.getText().toString());
                cmb.setPrimaryClip(myClip);
                Toast.makeText(ctx, "已复制在剪贴板",
                        Toast.LENGTH_SHORT).show();
                return true;
            }
        });
    }
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值