问题
I'm trying to create a graceful, distraction-free text editor.
One of the features I really would like to implement is a pop-up with simple text formatting commands, such as bold, italic, underline, font color, and font face.
To give you an idea, here is a picture of the popup in iOS(Obviously, this is just the idea. I want to create a custom design for the popup):
I have a few questions:
1) Is there such thing as a text selection listener, or some equivalent?
2) Will I need to override the default android action for text selection?
3) How would I display/create this popup? (Vague question, I know...)
I am just starting out in Java and Android development, but I have already created a few apps and have gotten the hang of it.
回答1:
The key term you're looking for here, to help you with your research, is ActionMode
, provided that your target is honeycomb or newer.
The API docs (scroll down to "using the contextual action mode) do an ok job of explaining things, once you find what you're looking for, which is the biggest barrier to their use, but basically what you're going to need to do is this:
- set your
EditText
to be selectable (android:textIsSelectable="true"
orsetTextIsSelectable(true);
- Implement the
ActionMode.Callback
interface and provide your own menu items.
NOTE: as mentioned above, this only works for API level 11+. If you're targeting earlier platforms, getting the events for text selection is much more complicated.
来源:https://stackoverflow.com/questions/9935688/android-text-selection-listener