TextView の標準のコピー ペーストを有効にしたい (EditText と同じ)。どうすればいいですか?
編集不可の EditText を使用してみましたが、うまくいきませんでした (編集可能になったり、コピー ペースト オーバーレイが表示されない場合がありました)。そして、それはおそらく一般的に良いアプローチではありません。
API 7 以降の実用的なソリューションが必要です。
TextView の標準のコピー ペーストを有効にしたい (EditText と同じ)。どうすればいいですか?
編集不可の EditText を使用してみましたが、うまくいきませんでした (編集可能になったり、コピー ペースト オーバーレイが表示されない場合がありました)。そして、それはおそらく一般的に良いアプローチではありません。
API 7 以降の実用的なソリューションが必要です。
試してみてくださいandroid:textIsSelectable
。
つまり、android:textIsSelectable="true"
TextView の標準のコピー/貼り付けを有効にするには、次のいずれかを選択できます。
レイアウト ファイルの変更: 以下のプロパティを TextView に追加します。
android:textIsSelectable="true"
Java クラスで、この行を記述して、プログラムで設定します。myTextView.setTextIsSelectable(true);
TextView を長押しすると、コピー/貼り付けアクション バーが表示されます。
これは、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();
}
});
テーマを使用
@android:style/Theme.Black.NoTitleBar.Fullscreen
また
@android:style/Theme.WithActionBar
xmlでTextViewを設定する
android:textIsSelectable="true"
結果を見る
これはより良いです:
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"