in .xml:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textIsSelectable="true" />
in .class:
textview.setCustomSelectionActionModeCallback(new callback(textview)); ... public class callback implements Callback { private TextView mTextView; public callback(TextView text) { this.mTextView = text; } @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { int start = mTextView.getSelectionStart(); int end = mTextView.getSelectionEnd(); Spannable wordtoSpan = (Spannable) mTextView.getText(); switch (item.getItemId()) { case R.id.item_blue: wordtoSpan.setSpan(new BackgroundColorSpan(Color.BLUE), start , end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); singlenton.getInstance().getDatabase().createMarkText(mTextView,Color.BLUE); return true; case R.id.item_green: wordtoSpan.setSpan(new BackgroundColorSpan(Color.GREEN), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); singlenton.getInstance().getDatabase().createMarkText(mTextView,Color.GREEN); return true; case R.id.item_red: wordtoSpan.setSpan(new BackgroundColorSpan(Color.RED), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); singlenton.getInstance().getDatabase().createMarkText(mTextView,Color.RED); return true; case R.id.item_yellow: wordtoSpan.setSpan(new BackgroundColorSpan(Color.YELLOW), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); singlenton.getInstance().getDatabase().createMarkText(mTextView,Color.YELLOW); return true; case R.id.item_erase: wordtoSpan.setSpan(new BackgroundColorSpan(Color.TRANSPARENT), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); singlenton.getInstance().getDatabase().createMarkText(mTextView,Color.TRANSPARENT); return true; } return false; } @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { mode.setTitle("Selecione a cor"); mode.getMenuInflater().inflate(R.menu.menu_text_context, menu); return true; } @Override public void onDestroyActionMode(ActionMode mode) { } @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { menu.removeItem(android.R.id.selectAll);
vrbsm
source share