Search code examples
androidclipboardmanager

Concat a string to clipboard in android


What i want is when user copies data from my application a string get added with the copied data.Or there is another way to do that.

I tried this:

ClipboardManager.OnPrimaryClipChangedListener mPrimaryChangeListener = new ClipboardManager.OnPrimaryClipChangedListener() {
    public void onPrimaryClipChanged() {

        ClipboardManager clipBoard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
        String cb = (String) clipBoard.getText();
        String tex = "hi i am here";
        String con = cb.concat(tex);
        clipBoard.setText(con);

        clipBoard.addPrimaryClipChangedListener(mPrimaryChangeListener);

    }
};

I put this code in oncreate.But it is not working I am new in android world.How to implement this.


Solution

  • ClipboardManager myClipBoard ;
    
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {                   
        myClipBoard = (ClipboardManager) Clipboard.this.getSystemService(android.content.Context.CLIPBOARD_SERVICE);
        myClipBoard.addPrimaryClipChangedListener(mPrimaryClipChangedListener);
    
    }
    
    ClipboardManager.OnPrimaryClipChangedListener mPrimaryClipChangedListener = new ClipboardManager.OnPrimaryClipChangedListener() {
            public void onPrimaryClipChanged() {                
                ClipData clipData = myClipBoard.getPrimaryClip();
    
                 ClipData.Item item = clipData.getItemAt(0);                                                 
                 String tex = ", hi i am here";
                 String con = item.getText().toString().concat(tex);
    
                 myClipBoard.removePrimaryClipChangedListener(mPrimaryClipChangedListener);
                 myClipBoard.setText(con);
                 myClipBoard.addPrimaryClipChangedListener(mPrimaryClipChangedListener);
    
            }
    };