皆さん、私はAndroid開発の初心者です。今、自分では解決できない問題があります。以下のコード (特にコードでマークされた行) に何か問題がありますか?
MainActivity.java:
package com.amaker.ch02.app;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private TextView displayTextView = (TextView)findViewById(R.id.DisplayTextView); <--Possibly this line
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
displayTextView.setText("change in the code");
}
}
実行すると、AVD で次のメッセージが表示されました。アプリケーションが予期せず停止しました。もう一度やり直してください。しかし、宣言の直後にdisplayTextViewを割り当てない場合、IOWは次のようにコードを変更すると、すべてがうまくいきます。
package com.amaker.ch02.app;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private TextView displayTextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
displayTextView = (TextView)findViewById(R.id.DisplayTextView);
displayTextView.setText("change in the code");
}
}
なんで?2つのコードに違いはありますか?