任何人都可以告诉我如何在按下按钮时将特定文本视图中的文本复制到剪贴板?Thanx :)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mainpage);
textView = (TextView) findViewById(R.id.textview);
copyText = (Button) findViewById(R.id.bCopy);
copyText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
String getstring = textView.getText().toString();
//Help to continue :)
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
}
我想在按下按钮bCopy时将TextView textView中的Text复制到剪贴板!请帮忙......
clipboard android copy-paste clipboard-interaction clipboardmanager
我正在构建一个Android应用程序,我想复制EditText小部件的文本值.用户可以按下Menu+A然后Menu+C复制该值,但我如何以编程方式执行此操作?
根据Android 文档,ClipData使用"label"作为复制数据的一种表示.
ClippedData是一个包含一个或Item实例的复杂类型,每个实例都可以包含一个或多个数据项的表示.为了向用户显示,它还具有标签和图标表示.
然后它进一步解释了"标签"作为某些API文档中剪辑数据的用户可见标签.但是,我仍然对标签的使用感到困惑.
该标签对用户如何可见?我该怎么用?当我调用ClipData工厂方法时,我应该为此标签设置什么newPlainText(CharSequence label, CharSequence text)?例如:
private void copyToClipBoard() {
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText(
"text label", // What should I set for this "label"?
"content to be copied");
clipboard.setPrimaryClip(clip);
Toast.makeText(AboutActivity.this, "Saved to clip board", Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
先感谢您:)
我正在构建一个应用程序,它将启动一个能够监听剪贴板更改的服务.
我真正想要的是永久记录(并在存储中写入)剪贴板中的每一个变化,所以当我启动我的应用程序时,我可以读取该服务所写的存储文件.这意味着,我的应用程序和服务之间不需要直接通信,也不需要使用唤醒锁来保持设备运行(因为剪贴板在设备处于睡眠状态时几乎不会改变).
我正在使用处理程序来反复检查剪贴板,我想知道如何实现clipboardListener来检查这些更改.
是否可以发送过去的命令,以便将文本粘贴到当前聚焦的编辑文本中.场景:
我知道如何复制文本ClipboardManager,但我不知道如何粘贴它.
我需要一个简单的服务(将在后台运行),当用户从浏览器或短信等中复制任何内容时,将会有一个显示该文本的Toast.
例:

此服务必须在Android 2.1及更高版本上运行.
今天(从上午10:35到现在[11:11 PM])我一直在网上搜索并测试了几个代码,但到目前为止我还没有得出结论.
一些用户在回答这样的问题时建议使用(my-clips)项目.我明白了,你可以下载这个.但这个项目很复杂,我很困惑.
有人能告诉我一个非常简单的例子吗?谢谢
编辑:
toast如下:You copy this: ...请帮我解决这个问题.这是我的代码
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
clipboard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
clipboard.addPrimaryClipChangedListener(this);
return START_STICKY;
}
@Override
public void onPrimaryClipChanged() {
Log.d("log",clipboard.getPrimaryClip()+"");
ClipData.Item item = clipboard.getPrimaryClip().getItemAt(0);
String clipText = item.getText().toString();
Log.d("log",clipText);
new SendClipBoardData().execute(postClipDataUrl,clipText);
}
Run Code Online (Sandbox Code Playgroud)
有时我会收到错误 ClipData.Item item = clipboard.getPrimaryClip().getItemAt(0);
错误: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.String java.lang.CharSequence.toString()' on a null object reference
该clipboard.getPrimaryClip()回报率ClipData { text/plain {NULL} },但是当我在同一复制的文本粘贴在我的笔记,我可以看到文本,我无法检测的问题,有时工作有时不.
还有一个问题,当复制工作正常时,我会复制文本结果两到三次,但我的事件工作一次,它可以是什么?提前致谢.
我正在使用android剪贴板管理器,并试图将一个字符串粘贴到我的Android应用程序,如developer.android.com教程中所述.我可以在正常情况下粘贴字符串,但在以下场景中存在问题.
场景:
我从文本文件中复制一个字符串.然后重启手机/ android设备.然后我运行我的应用程序.现在在我的应用中,clipBoard.hasPrimaryClip()函数返回false.因此,剪贴板中不应复制数据.但是,如果我打开文本文件或打开Skype,我可以粘贴在重新启动手机/安卓设备之前复制的字符串.
那么如何在重启之前获取复制到剪贴板的字符串.
正如我们知道在后台通过剪贴板管理器读取数据在 android Q 中被谷歌停止,所以我无论如何都需要在用户返回活动时粘贴直接复制到编辑文本中的数据,而没有用户进行粘贴和粘贴按钮。
问题在于尝试使用getPrimaryClip()返回读取数据null。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_copy_and_paste);
ed_editText = findViewById(R.id.ed_editText);
}
@Override
protected void onResume() {
super.onResume();
getCopy()
}
private void getCopy() {
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
if (clipboard != null && clipboard.hasPrimaryClip() && clipboard.getPrimaryClip() != null) {
CharSequence clip = clipboard.getPrimaryClip().getItemAt(0).coerceToText(CopyAndPasteActivity.this).toString();
ed_editText.setText(clip.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
XML
<EditText
android:id="@+id/ed_editText"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginLeft="24dp"
android:layout_marginStart="24dp"
android:maxLines="1"
android:lines="1"
android:focusable="true"
android:textSize="14sp"
android:inputType="text"
android:focusableInTouchMode="true"
android:layout_weight="1"
android:background="@null" >
<requestFocus />
</EditText>
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下侦听器将文本复制到剪贴板中:
import android.content.ClipboardManager.OnPrimaryClipChangedListener;
import com.orhanobut.logger.Logger;
public class ClipboardListener implements OnPrimaryClipChangedListener
{
public void onPrimaryClipChanged()
{
// do something useful here with the clipboard
// use getText() method
Logger.d("Clipped");
}
}
Run Code Online (Sandbox Code Playgroud)
监听器初始化如下:
ClipboardManager clipBoard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
clipBoard.addPrimaryClipChangedListener( new ClipboardListener());
Run Code Online (Sandbox Code Playgroud)
文本被复制到剪贴板onPrimaryClipChanged后被触发,但我不知道如何使用ClipboardManager.getPrimaryClip()在此方法中获取复制的文本,因为该方法不能从上下文中获得,并且不会在param中传递onPrimaryClipChanged.
android ×10
clipboardmanager ×10
clipboard ×4
copy-paste ×2
android-10.0 ×1
java ×1
menu ×1
restart ×1