Clipboard is a type of register where copied contents are kept by Android. If you require to keep some text content which could be used for later use, you can have it in Clipboard. But, don’t rely on clipboard for storing it permanently. For temporary use it is a nice place to have content.
Clipboard stores contents of last copy. But, some android devices are providing option to paste from last 10 copies.
In this demo application ClipboardManager we are going to add content of EditText to Clipboard on a Button click.
Create an Android Application Project with following values:
- Project Name: ClipboardManager
- Launcher Activity: MainActivity
- Package Name: pcsalt.example.clipboardmanager
- Prepare layout screen
activity_main.xml - Initialize activity
MainActivity.javapackage pcsalt.example.clipboardmanager; import android.annotation.SuppressLint; import android.app.Activity; import android.content.ClipData; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { EditText etMessage; Button btnCopy; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etMessage = (EditText) findViewById(R.id.etMessage); btnCopy = (Button) findViewById(R.id.btnCopy); // on button click copy text in EditText to clipboard btnCopy.setOnClickListener(new OnClickListener() { @SuppressWarnings("deprecation") @SuppressLint("NewApi") @Override public void onClick(View arg0) { String text = etMessage.getText().toString().trim(); if(text.length() > 0) { if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) { android.text.ClipboardManager clipboardMgr = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); clipboardMgr.setText(text); } else { // this api requires SDK version 11 and above, so suppress warning for now android.content.ClipboardManager clipboardMgr = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); ClipData clip = ClipData.newPlainText("Copied text", text); clipboardMgr.setPrimaryClip(clip); } } } }); } }
Here, a comparison is made to detect if the device is having Honeycomb or above or not. It is done because, for Honeycomb and above a new API class android.content.ClipboardManager is available. For previous version there is android.text.ClipboardManager class available.