[Android] Text Selectionでテキストをコピペ

Android 6.0 からText Selectionが少し変わりました。今まではActionBarにコピーなどのメニューが表示されていたものが選択箇所の近くで操作できるようになりました。
 
text-select_1

Android Studio 2.3.3
Android 7.1.1

 



ActionMode.Callback2

 
簡単な方法としては既存のActionMode.CallbackをActionMode.Callback2に変更します

setCustomSelectionActionModeCallbackではカスタマイズできますが、そのままオーバーライドして、コピーした文字列のみを取り出すように簡略化したものです。

MainActivity.java

activity_main.xml

 
上段の文字列の任意の範囲を選択して、copyを選択すると、画像下に選択した文字列がで表示されます。
 

 
これはあくまでAndroid 6.0 以降の対応なので、build.gradleでAPI23以上でビルドできるようにします。
 
 
References:
Text Selection
ActionMode.Callback2