Ixx*_*Ixx 106 android copy-paste textview
我想为TextView启用标准复制粘贴(与EditText相同).我该怎么做?
我尝试使用不可编辑的EditText但它运行不正常(有时它变得可编辑或者没有显示复制粘贴叠加).而且一般来说这可能不是一个好方法.
需要从API 7开始的工作解决方案.
小智 55
要为TextView启用标准复制/粘贴,U可以选择以下选项之一:
更改布局文件:将以下属性添加到TextView
android:textIsSelectable="true"
在Java类中编写此行以编程方式设置它. myTextView.setTextIsSelectable(true);
长按TextView,您可以看到复制/粘贴操作栏.
Ixx*_*Ixx 19
这适用于复制pre-Honeycomb:
import android.text.ClipboardManager;
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ClipboardManager cm = (ClipboardManager)context.getSystemService(Context.CLIPBOARD_SERVICE);
cm.setText(textView.getText());
Toast.makeText(context, "Copied to clipboard", Toast.LENGTH_SHORT).show();
}
});
Run Code Online (Sandbox Code Playgroud)
Agi*_*nbu 11
在 xml textview 中粘贴此代码
android:textIsSelectable="true"
Run Code Online (Sandbox Code Playgroud)
然后在java文件中,
final TextView txtcopypaste = findViewById(R.id.txtcopypaste); // my textview
txtcopypaste.setOnClickListener(new View.OnClickListener() { // set onclick listener to my textview
@Override
public void onClick(View view) {
ClipboardManager cm = (ClipboardManager)getApplicationContext().getSystemService(Context.CLIPBOARD_SERVICE);
cm.setText(txtcopypaste.getText().toString());
Toast.makeText(getApplicationContext(), "Copied :)", Toast.LENGTH_SHORT).show();
}
});
Run Code Online (Sandbox Code Playgroud)
要求:需要复制并粘贴textview中的文本。
结果:使用 textview ,一旦我点击了 textview 。它会自动复制文本视图中的文本。
注意:在导入剪贴板管理器时尝试更喜欢
请首选文本剪贴板管理器
import android.text.ClipboardManager; // prefer this
Run Code Online (Sandbox Code Playgroud)
尽量避免内容剪贴板管理器
import android.content.ClipboardManager; // Not this
Run Code Online (Sandbox Code Playgroud)
AZ_*_*AZ_ 10
需要API 11,更新代码,不推荐使用以前的方法
没有主题全屏的解决方案 ActionBar
扩展TextView并在构造函数中粘贴以下代码
this.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
ClipboardManager cManager = (ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData cData = ClipData.newPlainText("text", getText());
cManager.setPrimaryClip(cData);
Util.toast(mContext, string.text_copyed);
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
使用主题
@android:style/Theme.Black.NoTitleBar.Fullscreen
Run Code Online (Sandbox Code Playgroud)
或者
@android:style/Theme.WithActionBar
Run Code Online (Sandbox Code Playgroud)在xml中设置TextView
android:textIsSelectable="true"
Run Code Online (Sandbox Code Playgroud)查看结果