android:textIsSelectable 属性
もしくは
setTextIsSelectable() メソッド
を使います。
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
- <TextView
- android:id="@+id/editText1"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="This is an Android Phone!"
- android:textIsSelectable="true" />
- </RelativeLayout>
setTextIsSelectable() の中をみるとこんな感じです。
- 4650 public void setTextIsSelectable(boolean selectable) {
- 4651 if (mTextIsSelectable == selectable) return;
- 4652
- 4653 mTextIsSelectable = selectable;
- 4654
- 4655 setFocusableInTouchMode(selectable);
- 4656 setFocusable(selectable);
- 4657 setClickable(selectable);
- 4658 setLongClickable(selectable);
- 4659
- 4660 // mInputType is already EditorInfo.TYPE_NULL and mInput is null;
- 4661
- 4662 setMovementMethod(selectable ? ArrowKeyMovementMethod.getInstance() : null);
- 4663 setText(getText(), selectable ? BufferType.SPANNABLE : BufferType.NORMAL);
- 4664
- 4665 // Called by setText above, but safer in case of future code changes
- 4666 prepareCursorControllers();
- 4667 }
mTextIsSelectable はデフォルトでは false になっています。もちろん EditText でも false ですが、こちらは別の条件でテキスト選択が開始されます(具体的には editable かどうか)。
結構 2.3 のときと TextView のコード変わってて、なかなか面白いです。
0 件のコメント:
コメントを投稿