TextViewの標準コピーペーストを有効にしたい(EditTextの場合と同じ)。どうすればいいですか?
編集不可能なEditTextを使用しようとしましたが、うまく機能しませんでした(編集可能になるか、コピーペーストオーバーレイが表示されないことがありました)。そして、一般的にはおそらく良いアプローチではありません。
API 7以降の実用的なソリューションが必要です。
これは、ハニカムの前のハニカムで機能します:
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();
}
});
Android:textIsSelectable
を試してください。
すなわち、Android:textIsSelectable="true"
TextViewの標準のコピー/貼り付けを有効にするために、Uは次のいずれかを選択できます。
レイアウトファイルの変更:TextViewに以下のプロパティを追加します
Android:textIsSelectable="true"
Javaクラスにこの行を記述して、プログラムで設定します。 myTextView.setTextIsSelectable(true);
TextViewを長押しすると、コピー/貼り付けアクションバーが表示されます。
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;
}
});
テーマを使用
@Android:style/Theme.Black.NoTitleBar.Fullscreen
または
@Android:style/Theme.WithActionBar
xmlにTextViewを設定します
Android:textIsSelectable="true"
result を参照
Xml textviewでこのコードを貼り付けます
Android:textIsSelectable="true"
次に、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();
}
});
要件: textviewにあるテキストをコピーして貼り付ける必要があります。
OutCome: textviewをクリックすると、textviewを使用します。 textviewにあるテキストを自動的にコピーしました。
注: clipboardmanagerのインポート中に、
テキストクリップボードマネージャーを選択してください
import Android.text.ClipboardManager; // prefer this
コンテンツクリップボードマネージャーを避けるようにしてください
import Android.content.ClipboardManager; // Not this
this の方が良い:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
final Android.content.ClipboardManager clipboardManager = (Android.content.ClipboardManager) context
.getSystemService(Context.CLIPBOARD_SERVICE);
final Android.content.ClipData clipData = Android.content.ClipData
.newPlainText("text label", "text to clip");
clipboardManager.setPrimaryClip(clipData);
} else {
final Android.text.ClipboardManager clipboardManager = (Android.text.ClipboardManager) context
.getSystemService(Context.CLIPBOARD_SERVICE);
clipboardManager.setText("text to clip");
}
EditText
の場合、アクティビティ内のマニフェストでAndroid:windowSoftInputMode="adjustResize"
を使用します