2017-03-15 1 views
2

클립 보드에서 데이터를 가져 오는 방법은 무엇입니까? 데이터를 가져 와서 토스트에 표시하고 싶습니다. 내 안드로이드 폰에서 텍스트를 편집합니다. 길게 누르거나 문자열 값을 복사 할 때 .. 토스트해야합니다. 나는 이것을 어떻게 얻을 수 있을까 ?? 모든 튜토리얼에서는 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

? 내 서비스 클래스는 괜찮습니까? 나는 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 
    } 
}); 

희망이 도움이

관련 문제