2012-01-23 5 views
1

なぜ、どうして私がNullPointerExceptionを取得するのかわかりません。メソッドgetQuestion()は現在、トラブルシューティングの目的でハードコードされたStringを指しています。 UIを更新する必要がないように、setContentView()を実行する前に別の文字列を生成しようとしています。私のtextviewを別のオブジェクトから呼び出された文字列に置き換えます。java.lang.NullPointerException

私はメソッドgetQuestion(呼び出し初)

TextView t=new TextView(this); 
    t=(TextView)findViewById(R.id.textView4); 
    try { 
     //above executes well :) ... problem is below 
     t.setText(quiz.getQuestion()); 
    } catch (Exception e1) { 
     // TODO Auto-generated catch block 
     Toast.makeText(AlarmReceiverActivity.this, "getQuestion() failed", Toast.LENGTH_LONG).show(); 
        e1.printStackTrace(); 
    } 

    setContentView(R.layout.main); 

これは私のQuestion.classの一部です:

Question(){ 
    question="null"; 
    answer="null"; 
    try { 
     newQuestion(); 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
}//Question constructor 

String getQuestion(){ 
    return "This is a question?"; 
}//get question 
+0

'LogCat'からフルログを提供してください – Jin35

答えて

3

あなたがsetContentView(R.layout.main);を呼び出す前にt=(TextView)findViewById(R.id.textView4);を呼び出すことはできません。まず、あなたがあなたのレイアウトを設定する必要があり、その後、findViewByIdはあなたの定義されたレイアウト

0

からの眺めは、あなたがは、メソッドを呼び出す前にfindViewById()方法setContentView()を呼び出す必要があります見つけることができます。

は、あなたはそれがあなたのNullPointerException

setContentView(R.layout.main);//should be called before any findViewById() 
TextView t=new TextView(this); 
    t=(TextView)findViewById(R.id.textView4); 
    try { 
     //above executes well :) ... problem is below 
     t.setText(quiz.getQuestion()); 
    } catch (Exception e1) { 
     // TODO Auto-generated catch block 
     Toast.makeText(AlarmReceiverActivity.this, "getQuestion() failed", Toast.LENGTH_LONG).show(); 
        e1.printStackTrace(); 
    } 
0

最初の呼び出しを与える理由です、ビューを見つけようとする前に、あなたの活動のコンテンツのレイアウトを設定する必要があり

setContentView(R.layout.main); 

してから呼び出す

TextView t = (TextView)findViewById(R.id.textView4); 
関連する問題