在android中的TextView中选择一个单词

时间:2011-12-12 14:21:16

标签: android select textview

我希望通过双击或长按(或以其他方式)从TextView复制到剪贴板中的一个单词。它可以吗?

感谢您提前的时间!!!

2 个答案:

答案 0 :(得分:4)

使用EditText,并将属性editable设置为false。像这样:

<EditTextandroid:id="@+id/edittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:editable="false"/>

然后在java代码中获取edittext:

EditText edit = (EditText)findViewById(R.id.edittext);

然后将以下内容放入侦听器 - 例如LongPressListener。

OnLongClickListener lc = new OnClickListener(){

     @Override
     public boolean onLongClick(View view){

    int selection_start = edit.getSelectionStart();
    int selection_end = edit.getSelectionEnd();

    String copy = edit.getText().toString().subString(selection_start, selection_end);

    ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 

    clipboard.setText(copy);
    return false;
    }
 };

 edit.setOnLongClickListener(lc);

答案 1 :(得分:0)

在文本视图中使用您选择的任何列表器,但请记住在xml中使其可以在触摸模式下对于相关文本视图进行聚焦。

android:focusableInTouchMode="true"
android:clickable="true"

完成此操作后,使用以下代码将视图对象转换为文本视图后复制文本。

void onClick(View v)
{
    TextView tv = (TextView) v;
    ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
    clipboard.setText(tv.getText());
}