2013-03-01 2 views
-1

키보드를 만들었지 만 로컬 변수 사용에 약간의 오류가 있습니다.android java code error

private void updateCandidateText(){ 
     try{ 

      ExtractedText r= getCurrentInputConnection().getExtractedText(new ExtractedTextRequest(),InputConnection.GET_EXTRACTED_TEXT_MONITOR); 
      String strbeforeCursor=""; 
      String strafterCursor =""; 
       strbeforeCursor = getCurrentInputConnection().getTextBeforeCursor(1000000000, 0).toString(); 
      strafterCursor = getCurrentInputConnection().getTextAfterCursor(1000000000, 0).toString(); 
      String str = strbeforeCursor + "|"+strafterCursor; 
      if(mTamilPreviewView != null) 
       mTamilPreviewView.update(str, strbeforeCursor.length()); 

      mTamilPreviewView.update(r.text.toString() , 0); 
     } 
     catch (Exception e) { 
      Log.e("t", "errr", e); 
     }  
    } 
+2

당신이 우리에게 말해 주시겠습니까 할 수 있을까? –

+0

로컬 메서드 defenition에 오류가 발생했습니다. – user2122423

+0

@ user2122423 : 오류에는 ** 특정 ** 메시지가 있습니다. **이 메시지를 읽으면 추측하는 대신 오류를 이해할 수 있습니다. ** 완전한 ** 및 ** 정확한 ** 오류 메시지를 여기에 붙여 넣으십시오. –

답변

0

mTamilPreviewView != null

mTamilPreviewView.update(str, strbeforeCursor.length()); 

를 호출 할 수 있지만 null을 경우에도, 당신은

mTamilPreviewView.update(r.text.toString() , 0); 

을 다하겠습니다 그리고 당신은 NullPointerException을 얻을 것이다 경우 테스트. 그것은 정말로 당신이하고 싶은 것입니까? 당신은 또한

if (mTamilPreviewView != null) { 
    mTamilPreviewView.update(str, strbeforeCursor.length()); 
    mTamilPreviewView.update(r.text.toString() , 0); 
} 

을 의미하지 않는다, 당신은 빈 문자열로 strbeforeCursorstrafterCursor를 초기화하고 다음 라인에서 그들에게 다른 값을 제공합니다. 당신은 단순히 당신이 어떤 오류를받을 수 있나요

String strbeforeCursor=""; 
String strafterCursor =""; 

을 제거하고

String strbeforeCursor = getCurrentInputConnection().getTextBeforeCursor(1000000000, 0).toString(); 
String strafterCursor = getCurrentInputConnection().getTextAfterCursor(1000000000, 0).toString();