[android] Android에서 TextView에 대한 표준 복사 붙여 넣기를 활성화하려면 어떻게해야합니까?

TextView에 대한 표준 복사 붙여 넣기를 활성화하고 싶습니다 (EditText와 동일). 내가 어떻게 해?

편집 할 수없는 EditText를 사용해 보았지만 제대로 작동하지 않았습니다 (가끔 편집 가능해 지거나 복사 붙여 넣기 오버레이가 표시되지 않음). 그리고 일반적으로 좋은 접근 방식은 아닐 것입니다.

API 7부터 작동하는 솔루션이 필요합니다.



답변

시도해보십시오 android:textIsSelectable.

즉, android:textIsSelectable="true"


답변

TextView에 대한 표준 복사 / 붙여 넣기를 활성화하려면 U는 다음 중 하나를 선택할 수 있습니다.

  1. 레이아웃 파일 변경 : TextView에 아래 속성 추가

    android:textIsSelectable="true"

  2. 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();
    }
});


답변

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;
            }
        });


답변

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 사용, 일단 textview를 클릭했습니다. textview에있는 텍스트를 자동으로 복사합니다.

참고 : 클립 보드 관리자를 가져 오는 동안 선호하는

텍스트 클립 보드 관리자를 선호하세요

import android.text.ClipboardManager; // prefer this 

콘텐츠 클립 보드 관리자를 피하십시오

import android.content.ClipboardManager; // Not this


답변

  1. 테마 사용

    @android:style/Theme.Black.NoTitleBar.Fullscreen

    또는

    @android:style/Theme.WithActionBar
  2. xml에서 TextView 설정

    android:textIsSelectable="true"
  3. 참조 결과를


답변

누군가 추가 마일을 사용하고 한 번의 클릭으로 선택하고 클립 보드에 복사하려면 다음을 수행하십시오.

 phone.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
                            ClipData clip = ClipData.newPlainText("PhoneNumber", phone.getText());
                            clipboard.setPrimaryClip(clip);

                        }
                    });

phone은 TextView이고 phone.Text는 클립 보드에 복사 할 텍스트입니다.