Hari H, Masalahnya sederhana, dalam metode onResume() dari AppCompatActivity saya mengganti Fragmen dan ingin mengubah beberapa nilai turunannya secara langsung setelah ini.

Sebagai contoh:

public void onResume(){
    Fragment FR = new Fragment();
    FragmentTransaction FT = getSupportFragmentManager().beginTransaction();
    FT.replace(containerID, FR); //The Container is a FrameLayout
    FT.commit();

    findViewById(R.id.someTextView).setId(SomeID); //This throws a NullPointerException

}

Tepatnya: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.View.setId(int)' on a null object reference

Adakah Ide bagaimana menemukan Tampilan saya?

2
Mindxxxd 10 Maret 2017, 01:03

2 jawaban

Jawaban Terbaik

Anda harus menggunakan commitNow alih-alih komit. Fragmen sebenarnya tidak terpasang di tempatnya setelah instruksi komit. commitNow akan mengeksekusi komit secara serempak dan Anda akan dapat menemukan tampilan sesudahnya.

0
BO3 9 Maret 2017, 23:01

Karena getView() hanya berfungsi setelah onCreateView(), Anda tidak dapat menggunakannya seperti di atas..

0
Raja Jawahar 10 Maret 2017, 09:31