2017-03-15 77 views
2

如何從剪輯板獲取數據。我想獲取數據並顯示在吐司。手段在我的android手機中的任何編輯文本..什麼時候會長按和複製一些字符串值..這應該是敬酒。我怎麼能做到這一點?在我得到的每個教程中,他們都從指定的editText複製。我想要在我的手機的任何地方,我會複製一些文字..我只需要得到評估,特定的字符串... 和clipboard.getText();也無法正常工作。如何訪問Android中的剪貼板數據?

我試圖

public class ClipBoardDataManager extends BroadcastReceiver { 

     public ClipBoardDataManager() { 
     } 

     @Override 
     public void onReceive(Context context, Intent intent) { 

      String callNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); 

      ClipboardManager clipboard = (ClipboardManager) ctx.getSystemService(Context.CLIPBOARD_SERVICE); 

      ClipData myClip = ClipData.newPlainText("text", clipboard.getText()); 
      clipboard.setPrimaryClip(myClip); 


      ClipData abc = clipboard.getPrimaryClip(); 
      ClipData.Item item = abc.getItemAt(0); 

      Toast.makeText(ctx,item.toString(),Toast.LENGTH_SHORT).show(); 


     } 
    } 

和註冊。

IntentFilter intentFilter1 = new IntentFilter(String.valueOf(Intent.FILL_IN_CLIP_DATA)); 

ctx.registerReceiver(clipBoardDataManager,intentFilter1); 

還是我沒有得到它..請幫助!!!

+0

http://stackoverflow.com/a/38214507/7320259試試這個 –

+0

它將如何繼續評估我的手機的所有的EditText?和我的服務類是好的?我嘗試onPrimaryClipChanged()但不工作 –

+0

@ZakiPathan對不起,兄弟那個時候..現在它的工作..輸入答案我會作出正確的一個 –

回答

0
ClipboardManager clipBoard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE); 
clipBoard.addPrimaryClipChangedListener(new OnPrimaryClipChangedListener() { 

    @Override 
    public void onPrimaryClipChanged() { 
     ClipData clipData = clipBoard.getPrimaryClip(); 
     ClipData.Item item = clipData.getItemAt(0); 
     String text = item.getText().toString(); 

     // Access your context here using YourActivityName.this 
    } 
}); 

希望這有助於