使用android复制文本:textIsSelectable =“true”无法在android中的同一文本视图上使用onClicklistener

时间:2015-02-25 05:39:45

标签: android

我正在使用android:textIsSelectable =" true"所以我的文本有资格复制文本,在同一文本视图我使用onclicklistner,但该clicklistner不会工作。一旦我删除android:textIsSelectable =" true"它会工作正常。 我尝试将onLongpress listner设置为该textview并启用此属性运行时。任何人都能告诉我任何其他解决方案吗?

2 个答案:

答案 0 :(得分:1)

我见过其他人也有同样的问题。你应该这样做。

textView包裹你的LinearLayout,然后在LinearLayout上设置onClickListener,而不是在textView上设置。它会产生同样的影响。

<LinearLayout
    android:id="@+id/layout"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content">

    <Button
        android:id="@+id/button"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:textIsSelectable="true">
</LinearLayout>

.class文件中的新内容

LinearLayout mLayout = (LinearLayout) findViewById(R.id.layout);
mLayout.setOnClickListener(new View....) {
    ...
    // Do something here.
}

这将使您的textView可以选择,也可以点击。

答案 1 :(得分:0)

你可以像这样使用

 TextView tv;
 String stringYouExtracted = tv.getText().toString;
 int startIndex = tv.getSelectionStart();
 int endIndex = tv.getSelectionEnd();
 stringYouExtracted = stringYouExtracted.subString(startIndex, endIndex);

将字符串复制到剪贴板

if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) {
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setText(stringYouExtracted);
} else {
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
android.content.ClipData clip = android.content.ClipData.newPlainText("Copied Text", stringYouExtracted);
        clipboard.setPrimaryClip(clip);
}