Android textView 复制问题

本人想给TextView做一个Menu里面有一些选项,其中一项是复制,希望能够将这个TextView里面的文字直接放入到Android自带的剪切板中...敢问Androi... 本人想给TextView做一个Menu里面有一些选项,其中一项是复制,希望能够将这个TextView里面的文字直接放入到Android自带的剪切板中...敢问Android大虾们,肿么做~!! 展开
 我来答
08物理
推荐于2017-09-02 · 知道合伙人软件行家
08物理
知道合伙人软件行家
采纳数:1141 获赞数:4137
1、国内上市公司资深运维工程师、产品经理 2、百度芝麻将,认证管理员

向TA提问 私信TA
展开全部
方法一:在布局文件的TextView控件属性中增加一句:android:textIsSelectable="true"
方法二:直接上代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" >
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:background="#80FF00"
android:gravity="center"
android:text="长按此处跳出复制选框"
android:textColor="#000000" />
</LinearLayout>
</LinearLayout>

package com.example.copytest;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.text.ClipboardManager;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private TextView tv;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);
tv.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View arg0) {
test();
return false;
}
});
}
public Dialog test() {
Dialog dialog = new AlertDialog.Builder(this).setTitle("提示")
.setNegativeButton("取消", null)
.setItems(new String[] { "复制" }, new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String string = tv.getText().toString();
copy(string, getBaseContext());
Toast.makeText(getBaseContext(), "文本已复制到粘贴板", 2000)
.show();
}
}).create();
dialog.setCanceledOnTouchOutside(false);
dialog.show();
return dialog;
}
public static void copy(String content, Context context) {
// 得到剪贴板管理器
ClipboardManager cmb = (ClipboardManager) context
.getSystemService(Context.CLIPBOARD_SERVICE);
cmb.setText(content.trim());
}
}
百度网友21ef05c48
2011-06-18 · TA获得超过195个赞
知道答主
回答量:231
采纳率:100%
帮助的人:129万
展开全部
//定义一个粘贴板管理器
final ClipboardManager clipBoard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
//在Menu事件呼叫的时候运行这一行代码 文字就复制到粘贴板了
clipBoard.setText(textview.getText());

//想粘贴文字的时候也一样是一行
textview.setText(clipBoard.getText());

//相信你能看懂,看不懂的话我也帮不了你… 只能学学基础了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忧郁风_fly
2011-06-22
知道答主
回答量:14
采纳率:0%
帮助的人:3.6万
展开全部
用ClipboardManager来处理:
final ClipboardManager cb = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);

响应复制的时候,获取TextView的文字放入cb中:
cb.setText(textview.getText());

粘贴的时候只要把cb中保存的内容提取出来即可:
textview.setText(cb.getText());
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
noob22
2011-06-20 · TA获得超过413个赞
知道答主
回答量:84
采纳率:0%
帮助的人:73.8万
展开全部
获取textview中的文字的方法应该是gettext,获取后用clipboardmanager来处理就行了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lucky_znk
2011-06-17 · TA获得超过881个赞
知道小有建树答主
回答量:800
采纳率:0%
帮助的人:531万
展开全部
请稍候,正在解答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式