テキストと 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());