Android剪貼簿


什麼是Android剪貼簿?

在本教程中,我們將學習如何在我們的Android應用程式中使用Kotlin作為程式語言來使用剪貼簿。

剪貼簿這個名字本身就告訴我們,將資料剪下到板上。它基本上用於在Android應用程式中執行復制和貼上操作。剪貼簿通常用於從Android應用程式的一個螢幕複製資料,並將其貼上到同一應用程式的另一個螢幕或Android裝置中的另一個應用程式。

剪貼簿的實現

我們將建立一個簡單的應用程式,在該應用程式中,我們將簡單地顯示一個EditText,以便使用者能夠輸入輸入訊息。然後,我們將提供一個按鈕,該按鈕將用於使用剪貼簿管理器從該EditText複製資料。我們將遵循分步指南在Android應用程式中實現吐司訊息。

步驟1:在Android Studio中建立一個新專案

導航到Android Studio,如下面的螢幕所示。在下面的螢幕中,點選“新建專案”以建立一個新的Android Studio專案。

點選“新建專案”後,您將看到下面的螢幕。

在此螢幕中,我們只需選擇“空活動”並點選“下一步”。點選“下一步”後,您將看到下面的螢幕。

在此螢幕中,我們只需指定專案名稱。然後包名將自動生成。

注意 - 確保選擇Kotlin作為語言。

指定所有詳細資訊後,點選“完成”以建立一個新的Android Studio專案。

專案建立完成後,我們將看到兩個開啟的檔案,即activity_main.xml和MainActivity.kt檔案。

步驟2:使用activity_main.xml

導航到activity_main.xml。如果此檔案不可見,則要開啟此檔案。在左側窗格中導航到app>res>layout>activity_main.xml以開啟此檔案。開啟此檔案後,將以下程式碼新增到其中。程式碼中添加了註釋以詳細瞭解。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context=".MainActivity">

   <!-- creating text view for displaying heading-->
   <TextView
      android:id="@+id/idTVHeading"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_above="@id/idEdtMsg"
      android:layout_margin="20dp"
      android:gravity="center"
      android:text="Clip Board in Android"
      android:textAlignment="center"
      android:textAllCaps="false"
      android:textColor="#FF000000"
      android:textSize="20sp"
      android:textStyle="bold" />

   <!-- edit text for entering the message-->
   <EditText
      android:id="@+id/idEdtMsg"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_centerInParent="true"
      android:layout_margin="20dp"
      android:hint="Enter your message" />

   <!-- creating a button to  copy text to clip board-->
   <Button
      android:id="@+id/idBtnCopyClipBoard"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_below="@id/idEdtMsg"
      android:layout_margin="20dp"
      android:text="Copy to Clip Board"
      android:textAllCaps="false" />

</RelativeLayout>

說明 - 在上面的程式碼中,根元素是Android中的相對佈局。此佈局是一個ViewGroup,用於相對於彼此對齊其中的所有元素。藉助ID或位置,我們可以相對對齊RelativeLayout中的所有元素。

在此相對佈局內,我們將建立一個簡單的TextView,用於在我們的Android應用程式中顯示標題。

在此TextView之後,我們將建立一個簡單的EditText,我們將使用它透過鍵盤獲取使用者的輸入。

建立此EditText後,我們將建立一個Button,用於將使用者在EditText中輸入的文字複製到剪貼簿。

最後,我們為RelativeLayout新增一個結束標籤,因為TextView和Button都包含在我們的RelativeLayout中。

步驟3:使用MainActivity.kt

導航到MainActivity.kt。如果此檔案不可見,則要開啟此檔案。在左側窗格中導航到app>java>您的應用程式包名稱>MainActivity.kt以開啟此檔案。開啟此檔案後,將以下程式碼新增到其中。程式碼中添加了註釋以詳細瞭解。

package com.example.gptapp

import android.content.ClipData
import android.content.ClipboardManager
import android.os.Bundle
import android.widget.*
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

   // creating variables on below line.
   lateinit var copyClipBoardBtn: Button
   lateinit var msgEdt: EditText

   override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)
      setContentView(R.layout.activity_main)
      // initializing variables on below line.
      copyClipBoardBtn = findViewById(R.id.idBtnCopyClipBoard)
      msgEdt = findViewById(R.id.idEdtMsg)

      // adding on click listener for our button on below line.
      copyClipBoardBtn.setOnClickListener {
         // Creating and initializing variable for clip board manager on below line.
         val clipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
         // creating a variable to get data from our edit text
         val message = msgEdt.text.toString()
         // Creating and initializing the clip data variable.
         val clipData = ClipData.newPlainText("text", message)
         // saving the clip data object to clip board manager.
         clipboardManager.setPrimaryClip(clipData)
         // on below line we are displaying the toast message.
         Toast.makeText(applicationContext, "Text copied to clip board", Toast.LENGTH_SHORT)
         .show()
      }
   }
}

說明 - 在上面針對MainActivity.kt檔案的程式碼中,首先,我們為我們建立的不同檢視(如TextView、Button和EditText)建立了一個變數。

語法

以下是變數宣告的語法。

copyClipBoardBtn : copyClipBoardBtn is the variable name.
Button : Button is the variable Data type.
msgEdt : msgEdt is the variable name.
EditText : EditText is the variable Data type.

現在我們將看到onCreate方法。這是每個Android應用程式的預設方法。當應用程式檢視建立時,將呼叫此方法。在此方法內,我們正在設定內容檢視,即名為activity_main.xml的佈局檔案,以從該檔案中設定UI。

指定檢視後,我們使用其在activity_main.xml檔案中指定的唯一ID初始化名為copyClipBoardBtn的Button變數和名為msgEdt的EditText變數。

使用其唯一ID初始化Button和EditText後,我們透過呼叫setOnClickListner方法為Button新增一個點選偵聽器。在此方法內,我們將從EditText中的文字複製到剪貼簿管理器。

在onClickListner方法內,我們建立一個名為message的變數,其中我們從EditText獲取資料並將其儲存在其中。之後,我們為ClipData建立一個變數。在此變數中,我們建立一個新的Clip,其標籤為text,並將EditText中的值指定為其值,以將其儲存在剪貼簿管理器中。生成Clip後,我們將此ClipData設定為剪貼簿管理器的primaryClip。設定primaryClip後,我們只需顯示一條吐司訊息,表明資料已複製到剪貼簿。

新增上述程式碼後,現在只需點選頂欄中的綠色圖示即可在移動裝置上執行我們的應用程式。

注意 - 確保您已連線到您的真實裝置或模擬器。

結論

在以上教程中,我們學習了什麼是Android剪貼簿以及如何在Android應用程式中使用它來管理Android應用程式中文字的複製和貼上操作。

更新於: 2023年3月14日

485 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.