我想,你可以添加多个ClipData.Item到ClipData。因此,而不是使用静态方法newPlainText,使用
ClipData(ClipDescription description, ClipData.Item item)
或可用任何其它构造创建新ClipData。
我用的ClipDatagetItemCount方法来证明它确实是值的索引列表,让你绝对可以用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());
}
});
}
}