2011-03-31 5 views
0

안녕 얘들 아, 인스턴트 메신저 간단한 퀴즈에 노력하고 메신저 갔다! 문제는 데이터베이스에서 문자열을 가져 오려고 할 때를 제외하고 모든 것이 작동하고 있다는 것입니다 (데이터베이스가 있어야 함). java.lang.NullPointerException.i가 수정되었다는 것을 보여줍니다. 배열에있는 항목의 수와 수가 수정되었습니다! 왜 5 시간 동안 이런 일이 일어나고 있는지 그리고 여기에 집어 넣었는지 확인하십시오 !!! 나는 할 수있는 일을 모릅니다 !! 당신의 도움은 감사합니다! 내가 문자열을 얻기 위해 노력하고android 사용자 정의 컨텐츠 제공자

내 주요 클래스는

 Uri newUri = ContentUris.withAppendedId(
     QuestionsProvider.CONTENT_URI, 
     this.currentQuestion); 
     Log.d(TAG, "SHOWQUESTION " + " URI="+newUri.toString()); 

     Cursor cursor = cr.query(newUri, 
     null, null, null, null); 

      if (cursor.moveToFirst()) { 
     **question.setText(cursor.getString(
       QuestionsProvider.QUESTION_COLUMN)); //HERE I AM GETTING THE ERROR 
     currentAnswer = cursor.getString(
       QuestionsProvider.ANSWER_COLUMN);** 
     submit.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String text; 
       String answerGiven = 
       answer.getText().toString(); 
       answer.setText(""); 
       if (answerGiven. 
         equalsIgnoreCase(currentAnswer)) 
         {text = "Correct"; 
         }else{ 
         text = "Wrong - "+currentAnswer; 
         Toast.makeText(getApplicationContext(), 
         text, Toast.LENGTH_SHORT).show(); 
         } 
         }}); 
      } 
      cursor.close(); 
     dialog.show(); 

굵은

와 하나이며, 내 매니페스트에 내가 공급자 성공적으로 추가하고 정상적으로로드! 왜이 오류가 발생합니까? 나는 틀린 것을 볼 수 있습니다!

+0

열은 하드 코딩되지 않아야합니다 (제 생각에는). 오류 메시지를 게시 할 수 있습니까? – alibi

답변

0

내가 찾은 솔루션들 ! 헴을 풀어 주셔서 감사합니다. P 이것은 내가 찾은 해결책입니다 !!

String columns[] = new String[] { QuestionsProvider.KEY_QUESTION, QuestionsProvider.KEY_ANSWER }; 
      Uri mUri = QuestionsProvider.CONTENT_URI; 
      Cursor cur = managedQuery(mUri, columns, // Which columns to return 
        QuestionsProvider.KEY_ID+"="+currentQuestionNumber, // WHERE clause; which rows to return(all rows) 
        null, // WHERE clause selection arguments (none) 
        null // Order-by clause (ascending by name) 
0

쿼리에 투사 지정하는 것처럼 그것은 보이지 않는 :

Cursor cursor = cr.query(newUri, null, null, null, null); 

당신이 반환 할 열이있는 돌기를 추가해보십시오 :

Cursor cursor = cr.query(newUri, new String[] {KEY_ID, KEY_QUESTION, KEY_ANSWER}, null, null, null); 
+0

superfast 답장을 보내 주셔서 감사합니다! 아직 시도했지만 여전히 작동하지 않습니다. ( – DarkPain