ホームページ >Java >&#&チュートリアル >Android で「Null オブジェクト参照で仮想メソッド 'android.view.Window$Callback android.view.Window.getCallback()' を呼び出そうとしました」というメッセージが表示されるのはなぜですか?
Android の「Null オブジェクト参照で仮想メソッド 'android.view.Window$Callback android.view.Window.getCallback()' を呼び出そうとする」
このエラーは、アクティビティが完全に初期化される前にビューにアクセスしようとすると発生します。具体的には、Window.getCallback() メソッドが null オブジェクトに対して呼び出されたときにエラーがトリガーされます。これは、onCreate() で setContentView() メソッドがまだ呼び出されていなかった場合に発生する可能性があります。
原因:
このエラーを防ぐには、クラス内でビュー フィールドを初期化せずに宣言することが重要です。宣言:
private EditText usernameField, passwordField; private TextView error; private ProgressBar progress;
次に、setContentView() が呼び出された後、onCreate() 内でこれらのフィールドに値を割り当てます:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); usernameField = (EditText)findViewById(R.id.username); passwordField = (EditText)findViewById(R.id.password); error = (TextView)findViewById(R.id.error); progress = (ProgressBar)findViewById(R.id.progress); }
追加のアドバイス:
new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent = new Intent(SplashActivity.this, LoginActivity.class); startActivity(intent); finish(); } }, 1500);
以上がAndroid で「Null オブジェクト参照で仮想メソッド 'android.view.Window$Callback android.view.Window.getCallback()' を呼び出そうとしました」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。