需要从 TextView 中选择文本到所需的范围并进行复制。我尝试在 TextView 上使用 onClick Listener,并且还在 xml 中添加了 android:textIsSelectable="true"
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView = (TextView)findViewById(R.id.textview1);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
textView.setKeyListener(null);
textView.setFocusable(true);
String stringYouExtracted = textView.getText().toString();
int startIndex = textView.getSelectionStart();
int endIndex = textView.getSelectionEnd();
stringYouExtracted = stringYouExtracted.substring(startIndex, endIndex);
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
clipboard.setText(stringYouExtracted);
}
});
Toast.makeText(this, "Text clipped!", Toast.LENGTH_SHORT)
.show();
}
}
但它没有选择文本并且没有复制文本
最佳答案
试试这个..
删除下面的行..
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
clipboard.setText(stringYouExtracted);
并添加以下行..
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);
}
我希望这会有所帮助..
关于Android-使用剪贴板从 TextView 复制和粘贴所需字符串的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19263364/