Android 复制并粘贴多个文本
Android Copy and Paste Multiple Text
我已经使用 android 剪贴板管理器来复制和粘贴文本。像 whatsapp 一样,我想从列表视图中复制多个文本并粘贴它们。
我可以这样做,
StringBuilder textMessage = new StringBuilder();
for(messsage) {
textmessage.append(message);
textmessage.append("\n");
}
ClipData clip = ClipData.newPlainText("simple text", textMessage.toString());
clipboard.setPrimaryClip(clip);
我可以将文本消息数组存储到一个剪辑对象中并使用数组索引检索,而不是将多个文本消息附加到一个中。
我想,您可以将多个 ClipData.Item
添加到您的 ClipData
。因此,不要使用静态方法 newPlainText
,而是使用
创建新的 ClipData
ClipData(ClipDescription description, ClipData.Item item)
或任何其他可用的构造函数。
我已经使用了ClipData
的getItemCount
方法来证明它确实是一个索引值列表,所以你绝对可以使用getItemAt
来获取任何ClipData.Item
从任何位置,前提是位置不会引导您到达 OutOfBoundException
。下面的代码非常新手,但我相信可以达到演示的目的。如果您需要更多帮助,请告诉我。
public class MainActivity extends AppCompatActivity {
ClipboardManager clipboard;
static int var = 0;
ClipData clipData;
TextView tvClip;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvClip = (TextView) findViewById(R.id.tv_add);
clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
Button btnClip = (Button) findViewById(R.id.btn_add);
btnClip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ClipData.Item item = new ClipData.Item("var" + var);
if (clipData == null) {
clipData = new ClipData(new ClipDescription("your_clip_description", new String[]{ClipDescription.MIMETYPE_TEXT_PLAIN}), item);
clipboard.setPrimaryClip(clipData);
}
clipData.addItem(item);
}
});
Button showClip = (Button) findViewById(R.id.btn_show);
showClip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (clipData != null)
tvClip.setText("count = " + clipData.getItemCount());
}
});
}
}
我已经使用 android 剪贴板管理器来复制和粘贴文本。像 whatsapp 一样,我想从列表视图中复制多个文本并粘贴它们。 我可以这样做,
StringBuilder textMessage = new StringBuilder();
for(messsage) {
textmessage.append(message);
textmessage.append("\n");
}
ClipData clip = ClipData.newPlainText("simple text", textMessage.toString());
clipboard.setPrimaryClip(clip);
我可以将文本消息数组存储到一个剪辑对象中并使用数组索引检索,而不是将多个文本消息附加到一个中。
我想,您可以将多个 ClipData.Item
添加到您的 ClipData
。因此,不要使用静态方法 newPlainText
,而是使用
ClipData
ClipData(ClipDescription description, ClipData.Item item)
或任何其他可用的构造函数。
我已经使用了ClipData
的getItemCount
方法来证明它确实是一个索引值列表,所以你绝对可以使用getItemAt
来获取任何ClipData.Item
从任何位置,前提是位置不会引导您到达 OutOfBoundException
。下面的代码非常新手,但我相信可以达到演示的目的。如果您需要更多帮助,请告诉我。
public class MainActivity extends AppCompatActivity {
ClipboardManager clipboard;
static int var = 0;
ClipData clipData;
TextView tvClip;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvClip = (TextView) findViewById(R.id.tv_add);
clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
Button btnClip = (Button) findViewById(R.id.btn_add);
btnClip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ClipData.Item item = new ClipData.Item("var" + var);
if (clipData == null) {
clipData = new ClipData(new ClipDescription("your_clip_description", new String[]{ClipDescription.MIMETYPE_TEXT_PLAIN}), item);
clipboard.setPrimaryClip(clipData);
}
clipData.addItem(item);
}
});
Button showClip = (Button) findViewById(R.id.btn_show);
showClip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (clipData != null)
tvClip.setText("count = " + clipData.getItemCount());
}
});
}
}