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

发布于 2024-12-20 16:55:49 字数 73 浏览 1 评论 0原文

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

提前感谢您的宝贵时间!

I want copy to clipboard one word from my TextView by double click or long click (or in some another way). Is it posible?

Thank you for your time in advance!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

阪姬 2024-12-27 16:55:49

使用 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);

Use an EditText, and set the attribute editable to false. Like this:

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

Then get the edittext in your java code:

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

Then put the following into a listener - a LongPressListener for instance.

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);
浴红衣 2024-12-27 16:55:49

在文本视图上使用您选择的任何侦听器,但请记住在相关文本视图的 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());
}

Use any listner of your choice on the text view but remember to make it focusable in touch mode in the xml for the text view in question.

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

After this is done use the following code to copy the text after casting the view object to a text view.

void onClick(View v)
{
    TextView tv = (TextView) v;
    ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
    clipboard.setText(tv.getText());
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文