2013-03-01 5 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); 
} 

Кроме того, вы инициализировать strbeforeCursor и strafterCursor с пустой строкой, и вы даете им другие значения в следующих строках. Вы можете просто удалить

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

и сделать

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