Android-클립 보드

Android는 다양한 유형의 데이터를 복사하고 붙여 넣기위한 클립 보드 프레임 워크를 제공합니다. 데이터는 텍스트, 이미지, 이진 스트림 데이터 또는 기타 복잡한 데이터 유형일 수 있습니다.

Android는 복사 및 붙여 넣기 프레임 워크를 사용하기 위해 ClipboardManager 및 ClipData 및 ClipData.item 라이브러리를 제공합니다. 클립 보드 프레임 워크를 사용하려면 데이터를 클립 객체에 넣은 다음 해당 객체를 시스템 전체 클립 보드에 넣어야합니다.

클립 보드를 사용하려면 다음을 호출하여 ClipboardManager의 객체를 인스턴스화해야합니다. getSystemService()방법. 구문은 다음과 같습니다.

ClipboardManager myClipboard;
myClipboard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);

데이터 복사

다음으로해야 할 일은 ClipData 클래스의 각 데이터 메서드 유형을 호출하여 ClipData 개체를 인스턴스화하는 것입니다. 텍스트 데이터의 경우newPlainText메서드가 호출됩니다. 그런 다음 해당 데이터를 Clipboard Manager 개체의 클립으로 설정해야합니다. 구문은 다음과 같습니다.

ClipData myClip;
String text = "hello world";
myClip = ClipData.newPlainText("text", text);
myClipboard.setPrimaryClip(myClip);

ClipData 개체는 이러한 세 가지 형식을 취할 수 있으며 다음 함수를 사용하여 이러한 형식을 만듭니다.

Sr. 아니요 ClipData 양식 및 방법
1

Text

newPlainText (레이블, 텍스트)

단일 ClipData.Item 개체에 텍스트 문자열이 포함 된 ClipData 개체를 반환합니다.

2

URI

newUri (분석기, 레이블, URI)

단일 ClipData.Item 개체에 URI가 포함 된 ClipData 개체를 반환합니다.

Intent

newIntent (라벨, 의도)

단일 ClipData.Item 개체에 Intent가 포함 된 ClipData 개체를 반환합니다.

데이터 붙여 넣기

데이터를 붙여 넣기 위해 먼저 다음을 호출하여 클립을 가져옵니다. getPrimaryClip()방법. 그리고 그 클릭에서 우리는 ClipData.Item 객체에 항목을 가져올 것입니다. 그리고 객체에서 데이터를 얻습니다. 구문은 다음과 같습니다.

ClipData abc = myClipboard.getPrimaryClip();
ClipData.Item item = abc.getItemAt(0);
String text = item.getText().toString();

이러한 메서드 외에도 클립 보드 프레임 워크를 관리하기 위해 ClipboardManager 클래스에서 제공하는 다른 메서드가 있습니다. 이러한 방법은 다음과 같습니다.

Sr. 아니요 방법 및 설명
1

getPrimaryClip()

이 메서드는 클립 보드의 현재 기본 클립을 반환합니다.

2

getPrimaryClipDescription()

이 메서드는 클립 보드에있는 현재 기본 클립에 대한 설명을 반환하지만 해당 데이터의 복사본은 반환하지 않습니다.

hasPrimaryClip()

이 메서드는 현재 클립 보드에 기본 클립이있는 경우 true를 반환합니다.

4

setPrimaryClip(ClipData clip)

이 메서드는 클립 보드에 현재 기본 클립을 설정합니다.

5

setText(CharSequence text)

이 방법은 텍스트를 클립 보드에 복사하는 데 직접 사용할 수 있습니다.

6

getText()

이 메서드는 클립 보드에서 복사 된 텍스트를 가져 오는 데 직접 사용할 수 있습니다.

다음은 ClipboardManager 클래스의 사용을 보여주는 예제입니다. 텍스트를 복사 한 다음 클립 보드를 통해 붙여 넣을 수있는 기본 복사 붙여 넣기 응용 프로그램을 만듭니다.

이 예제를 실험하기 위해 실제 기기 또는 에뮬레이터에서 실행할 수 있습니다.

단계 기술
1 Android 스튜디오 IDE를 사용하여 com.example.sairamkrishna.myapplication 패키지 아래에 Android 애플리케이션을 만듭니다.
2 src / MainActivity.java 파일을 수정하여 필요한 코드를 추가합니다.
res / layout / activity_main을 수정하여 각 XML 구성 요소를 추가하십시오.
4 애플리케이션을 실행하고 실행중인 Android 기기를 선택하고 여기에 애플리케이션을 설치하고 결과를 확인합니다.

다음은 수정 된 주요 활동 파일의 내용입니다. src/MainActivity.java.

package com.example.sairamkrishna.myapplication;

import android.content.ClipData;
import android.content.ClipboardManager;
import android.os.Bundle;

import android.support.v7.app.ActionBarActivity;
import android.view.View;

import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class MainActivity extends ActionBarActivity {
   EditText ed1, ed2;
   Button b1, b2;

   private ClipboardManager myClipboard;
   private ClipData myClip;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      ed1 = (EditText) findViewById(R.id.editText);
      ed2 = (EditText) findViewById(R.id.editText2);

      b1 = (Button) findViewById(R.id.button);
      b2 = (Button) findViewById(R.id.button2);

      myClipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);

      b1.setOnClickListener(new View.OnClickListener() {
         
         @Override
         public void onClick(View v) {
            String text;
            text = ed1.getText().toString();

            myClip = ClipData.newPlainText("text", text);
            myClipboard.setPrimaryClip(myClip);

            Toast.makeText(getApplicationContext(), "Text Copied", 
               Toast.LENGTH_SHORT).show();
         }
      });

      b2.setOnClickListener(new View.OnClickListener() {
         
         @Override
         public void onClick(View v) {
            ClipData abc = myClipboard.getPrimaryClip();
            ClipData.Item item = abc.getItemAt(0);

            String text = item.getText().toString();
            ed2.setText(text);

            Toast.makeText(getApplicationContext(), "Text Pasted", 
               Toast.LENGTH_SHORT).show();
         }
      });
   }

}

다음은 xml의 수정 된 내용입니다. res/layout/activity_main.xml.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" 
   android:layout_width="match_parent"
   android:layout_height="match_parent" 
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" 
   tools:context=".MainActivity">
   
   <TextView android:text="Example" android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/textview"
      android:textSize="35dp"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point"
      android:id="@+id/textView"
      android:layout_below="@+id/textview"
      android:layout_centerHorizontal="true"
      android:textColor="#ff7aff24"
      android:textSize="35dp" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:hint="Copy text"
      android:layout_below="@+id/imageView"
      android:layout_alignLeft="@+id/imageView"
      android:layout_alignStart="@+id/imageView" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText2"
      android:layout_alignLeft="@+id/editText"
      android:layout_alignStart="@+id/editText"
      android:hint="paste text"
      android:layout_below="@+id/editText"
      android:layout_alignRight="@+id/editText"
      android:layout_alignEnd="@+id/editText" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Copy text"
      android:id="@+id/button"
      android:layout_below="@+id/editText2"
      android:layout_alignLeft="@+id/editText2"
      android:layout_alignStart="@+id/editText2" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Paste text"
      android:id="@+id/button2"
      android:layout_below="@+id/editText2"
      android:layout_alignRight="@+id/editText2"
      android:layout_alignEnd="@+id/editText2" />
      
</RelativeLayout>

다음은의 내용입니다 res/values/string.xml.

<resources>
   <string name="app_name">My Application</string>
</resources>

다음 내용은 AndroidManifest.xml 파일.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >

   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.sairamkrishna.myapplication.MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      
      </activity>
   </application>

</manifest>

방금 수정 한 애플리케이션을 실행 해 보겠습니다. 나는 당신이 당신의AVD환경 설정을하는 동안. Android 스튜디오에서 앱을 실행하려면 프로젝트의 활동 파일 중 하나를 열고

도구 모음에서 실행 아이콘을 클릭 합니다. Android 스튜디오 설치 프로그램은 다음 이미지를 표시합니다-

이제 복사 할 텍스트 필드에 텍스트를 입력 한 다음 텍스트 복사 버튼을 선택합니다. 다음과 같은 알림이 표시됩니다.

이제 붙여 넣기 버튼을 누르기 만하면 복사 된 텍스트가 복사 된 텍스트 필드에 붙여 넣어 진 것을 볼 수 있습니다. 아래에 나와 있습니다-