我有一个包含带有文本和 ImageSpan 的 SpannableString 的edittext,我想当我长按 ImageSpan 时知道我单击了哪个 Drawable(或 SpannableString 中的索引)并将其转换为 uri 以将其复制到剪贴板。之后,您可以将其粘贴到其他编辑文本中。但我不知道如何处理这个问题。
如果有人可以提供帮助,这是我的代码,在此先感谢
editText=(EditText)findViewById(R.id.editText);
SpannableString ss = new SpannableString("abcd efgh ijklmn opqr stuv wxy");
Drawable d = getResources().getDrawable(R.drawable.logomakr);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
ss.setSpan(span, 20, 21, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
ss.setSpan(new ClickableSpan() {
@Override
public void onClick(View v) {
new AlertDialog.Builder(MainActivity.this)
.setTitle("Copy Image")
.setPositiveButton("copy", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// continue with copy
}
})
.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// do nothing
}
})
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
}
}, 20, 21, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
editText.setText(ss);
editText.setMovementMethod(LinkMovementMethod.getInstance());