Rumah > Java > javaTutorial > Mengapa Saya Mendapat 'Percubaan untuk Mendapat Kaedah Maya 'android.view.Window$Callback android.view.Window.getCallback()' pada Rujukan Objek Null' dalam Android?

Mengapa Saya Mendapat 'Percubaan untuk Mendapat Kaedah Maya 'android.view.Window$Callback android.view.Window.getCallback()' pada Rujukan Objek Null' dalam Android?

Barbara Streisand
Lepaskan: 2024-12-09 14:10:15
asal
1021 orang telah melayarinya

Why Do I Get

“Percubaan untuk Mendapat Kaedah Maya 'android.view.Window$Callback android.view.Window.getCallback()' pada Rujukan Objek Null” dalam Android

Ralat ini berlaku apabila Aktiviti cuba mengakses paparan sebelum ia dimulakan sepenuhnya. Khususnya, ralat dicetuskan apabila kaedah Window.getCallback() dipanggil pada objek nol, yang boleh berlaku jika kaedah setContentView() belum lagi digunakan dalam onCreate().

Sebab :
Untuk mengelakkan ralat ini, adalah penting untuk mengisytiharkan medan paparan tanpa memulakannya dalam kelas pengisytiharan:

private EditText usernameField, passwordField;
private TextView error;
private ProgressBar progress;
Salin selepas log masuk

Kemudian, tetapkan nilai kepada medan ini dalam onCreate() selepas setContentView() dipanggil:

@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);
}
Salin selepas log masuk

Nasihat Tambahan:

  • Pertimbangkan menggunakan Pengendali untuk menjalankan kod pada urutan UI dan bukannya Pemasa, sebagai Pemasa melaksanakan tugas pada urutan latar belakang.
new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
        Intent intent = new Intent(SplashActivity.this, LoginActivity.class);
        startActivity(intent);
        finish();
    }
}, 1500);
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Percubaan untuk Mendapat Kaedah Maya 'android.view.Window$Callback android.view.Window.getCallback()' pada Rujukan Objek Null' dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan