作成しているAndroidアプリのサポートと
プログラミングやいろんなガジェットについて
備忘録を残していくブログです

AndroidのTextViewをカスタムする

0 件のコメント
そろそろスマートフォンにもAndroid4.0が普及してきそうだ。 
Android4.0へのアップデート情報や4.0搭載の新機種の話題がたくさん。

タブレットは普及しているのかは不明だが(我が家にはTF101がある)、
GoogleのNexusタブレットはかなり低価格で販売されそうだとの噂もちらほら。

アプリもいろいろとついていかないといけないなぁと思い
最近はもっぱらAndroid Developer's のReferenceを読みふけっている。

Android3.0以降から使えるようになったAPIはたくさんあるので
勉強してアプリに組み込んでいきたい。

今日はTextViewについてメモっとく。 

TextViewは、Android3.0以降から長押しでテキスト選択可能になっている。
テキスト選択するには

TextView#setTextIsSelectable(true)

で選択可能にしてあげると選択モードに切り替わる。 

選択モードになると
すべて選択とコピーがアクションバーに表示されるのだが、
これだけだと微妙に使い勝手が悪い。 

で、選択モードをカスタムできちゃうのがこのメソッド

TextView#setCustomSelectionActionModeCallback()


使用方法はこんな感じ こんなコールバックインターフェースを実装する。

 private class TextSelectActionMode implements ActionMode.Callback {
     
     @Override
     public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
      if ("custom".equals(item.getTitle())){
       // テキストに対してなんらかの処理をする
       // 例えば、選択した文字列を()でくくるとか
      }
         return false;
     }

     @Override
     public boolean onCreateActionMode(ActionMode mode, Menu menu) {
      // アクションアイテムを作る
      MenuItem cutItem = menu.add("custom");
      cutItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
      cutItem.setIcon(R.drawable.icon);
      
         return true;
     }

     @Override
     public void onDestroyActionMode(ActionMode mode) {
     
     }
     @Override
     public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
         return false;
     }
 }
そして、以下のようにTextViewにセットするだけでカスタムしたテキストビューができる。
TextView.setCustomSelectionActionModeCallback(new TextSelectActionMode());

0 件のコメント :

コメントを投稿