- Android Studio
- Java
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.
- İ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.
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.
- Ş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();
}