Copy Paste App

İçerik

  1. Kullanılan Teknolojiler
  2. Proje Tanımı
  3. Kod Tanımı
  4. Örnek Ekran Görüntüleri

Kullanılan Teknolojiler

  • Android Studio

Image of Android Studio

  • Java

Image of Java

Proje Tanımı

ClipboardManager kütüphanesi kullanarak Android tabanlı geliştirilmiş basit bir koyala yapıştır örnek projedir.

Android sisteminde bir yazıyı kopyaladığımızda veya bir görüntünün ekran görüntüsünü aldığımız zaman bu verilerin pano adı verilen bir yerde tutulduğunu biliyoruz. Bu uygulamamızda girilen bir metini pano'ya kopyalayıp daha sonra diğer sayfamızda pano'muz üzerinden yapıştırma örneği yaparak nasıl kullanıldığını göreceğiz.

Kod Tanımı

  • İlk olarak tasarım ile başlayalım.

Uygulamamızda 2 adet ekranımız olacaktır. İlk önce kullanıcının metin girdiği ve kopyalama işlemini yaptığımız ekranın tasarımını yapalım. Bu ekranımıza bir adet EditText ve iki adet Button ekliyoruz.

ekran görüntüsü 1

Daha sonra kopyaladığımız metini ekrana yapıştıracağımız ikinci ekranın tasarımına geçelim. Bu ekranımıza bir adet TextView ve bir adet Button ekliyoruz.

ekran görüntüsü 2

  • Şimdi kodlama kısmına geçebiliriz.

İlk olarak ana ekranda ihtiyacımız olan nesnelerin tanımlamalarını yapalım. ClipData kopyalayacağımız nesnenin kendisi oluyor. ClipboardManager ise panomuz oluyor. İleride daha detaylı açıklayacağım.

private EditText editText;
private Button buttonCopy, buttonGo;

private ClipboardManager kopyalamaPano;
private ClipData clipData;

Daha sonra nesnelerin atamalarını yapıp Button'ları aktif hale getirelim.

editText = findViewById(R.id.editText);
buttonCopy = findViewById(R.id.buttonKopyala);
buttonGo = findViewById(R.id.buttonGit);

kopyalamaPano = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);

buttonCopy.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        String metin = editText.getText().toString().trim();

        if (!metin.isEmpty()) {
            kopyala(metin);
        } else {
            Snackbar.make(buttonCopy, "Lütfen bir şeyler yazınız...", Snackbar.LENGTH_LONG).show();
        }
    }
});

buttonGo.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        startActivity(new Intent(MainActivity.this, SecondActivity.class));
    }
});

Şimdi asıl işlemimiz olan Kopyalama işlemini gerçekleştiren fonksiyonu yazalım. İlk olarak kopyalayacağımız veri türü metin olduğu için ClipData.newPlainText("text", metin) yardımıyla ClipData nesnemizin text olduğunu belirtiyoruz ve kopyalanacak metini içerisine atıyoruz. Daha sonra panomuzu yönetmemizi sağlayan ClipboardManager nesnemizi clipData nesnemiz ile set ediyoruz. Böylece clipData nesnemiz panomuza kopyalanmış oluyor.

public void kopyala(String metin) {
    clipData = ClipData.newPlainText("text", metin);
    kopyalamaPano.setPrimaryClip(clipData);

    Snackbar.make(buttonCopy, "Panoya kopyalandı...", Snackbar.LENGTH_LONG).show();
}

Şimdi kopyaladığımız veriyi yapıştıracağımız diğer ekranımıza geçebiliriz. Aynı şekilde ihtiyacımız olan nesnelerin tanımlamalarını ve atamalarını yapıp Button'u aktif hale getirelim.

private TextView textView;
private Button buttonPaste;

private ClipboardManager kopyalamaPano;
private ClipData clipData;
textView = findViewById(R.id.textView);
buttonPaste = findViewById(R.id.buttonYapistir);

kopyalamaPano = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);

buttonPaste.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        yapistir();
    }
});

Şimdi diğer önemli işlemimiz olan yapıştırma işlemini yaptığımız fonksiyonu yazalım. İlk olarak ClipboardManager içerisine set ettiğimiz ClipData nesnemizi kopyalamaPano.getPrimaryClip() fonksiyonu ile çekiyoruz. Daha sonra clipData içerisindeki nesneler arasından en son kopyalanan nesneyi seçmek için ClipData.Item item = clipData.getItemAt(0); yapısını kullanıyoruz.

public void yapistir(){
    clipData = kopyalamaPano.getPrimaryClip();
    ClipData.Item item = clipData.getItemAt(0);

    String kopyalananYazi = item.getText().toString();

    textView.setText(kopyalananYazi);

    Snackbar.make(buttonPaste, "Yazı yapıştırıldı...", Snackbar.LENGTH_LONG).show();
}

Örnek Ekran Görüntüleri

Ekran 1 Mesaj 1 Ekran 2 Mesaj 2