2016-07-19 10 views
1

Android에서 이상한 "문제"또는 "버그"가 발생했습니다. 내 응용 프로그램에 ClipboardManager를 자주 사용합니다. 그러나 몇 초 안에 두 번 사용하면 항상 NullPointerException이 발생합니다. 내가 생각하기에 Clipboard는 내가 액세스 할 때 아직 채워지지 않았지만 이것은 정말로 어리석은 생각 인 것 같습니다 ... 누구에게도 동일한 문제가 발생 했습니까? String text = item.getText(). toString();에서 오류가 발생합니다.Android에서 ClipData가 Null 인 경우가 있습니다.

오류 메시지 :

java.lang.NullPointerException이 : at.co.netconsulting에서 널 객체 참조 에 ') java.lang.String의 java.lang.CharSequence.toString ('인터페이스 메소드를 호출 시도 역어. 설정 $ 1 $ 3.on 기본 클립 변경됨

모든 힌트 나 도움을 미리 주셔서 감사합니다! 나는이 해결책이 될 수 있다고 생각

final ClipboardManager myClipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
        myClipboard.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() { 
         @Override 
         public void onPrimaryClipChanged() { 
          ClipData cp = myClipboard.getPrimaryClip(); 
          if(cp.getItemCount()>0) { 
           ClipData.Item item = cp.getItemAt(0); 
           if (item == null) { 
            Toast.makeText(getApplicationContext(), "Item is null", Toast.LENGTH_LONG).show(); 
           } else { 
            if(item!=null) { 
             String text = item.getText().toString(); 
             Toast.makeText(getApplicationContext(), "Sie suchen nach dem Wort: " + text, Toast.LENGTH_LONG).show(); 
             Intent msgIntent = new Intent(SettingsActivity.this, ServiceTranslator.class); 
             msgIntent.putExtra("ClipBoardData", text); 
             startService(msgIntent); 
            } 
           } 
          } 
         } 
        }); 
       } 

답변

1

: 여기

내 코드의 조각이다. 문서에 보면

String text = item.coerceToText(getBaseContext()).toString(); 

, 당신이 원하는 모든이 잘린 데이터의 텍스트 표현 인 경우 , 당신은 * 편리한 방법 {@link 항목 # coerceToText Item.coerceToText}을 사용할 수 있다고한다.

내 문제가 해결되기를 바랍니다.