-4

我在課堂上收到此錯誤消息顯示java.lang.NullPointerException:爲getDialog()getWindow()

java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window android.app.Dialog.getWindow()' on a null object reference 

我想這

public class ABCD_Fragment extends DialogFragment { 

@Override 
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
     getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE| WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 
     super.onViewCreated(view, savedInstanceState); 
    } 

} 

請幫助我。我不明白爲什麼getDialog()是空的。

+0

DownVoters幫助我而不是倒下投票 – VVB

+0

檢查鏈接 –

+0

請che che CK此鏈接:http://www.androidbegin.com/tutorial/android-dialogfragment-tutorial/ – KishuDroid

回答

0

使用這個,如果你從一個片段調用它:

FragmentManager fragmentManager = getFragmentManager(); 
       ABCD_Fragment mDialogwindow = new ABCD_Fragment(); 
       mDialogwindow.show(fragmentManager, "DIALOG WINDOW"); 

如果從活動稱之爲:

FragmentManager fragmentManager = getSupportFragmentManager(); 
      ABCD_Fragment mDialogwindow = new ABCD_Fragment(); 
mDialogwindow.show(fragmentManager, "DIALOG WINDOW"); 

,然後在ABCD_FRAGMENT補充一點:

getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE| 
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 
     super.onViewCreated(view, savedInstanceState); 
+0

getDialog()給我空,因爲它是在viewpager dialogfragment – VVB

+0

你試試這個: \t @覆蓋 \t公衆查看onCreateView (LayoutInflater充氣,容器的ViewGroup, \t \t \t捆綁savedInstanceState){ \t \t查看rootView = inflater.inflate(R.layout 「您的對話框片段佈局」,容器, \t \t \t \t假); ()「我的對話框片段」(「My DIALOG FRAGMENT」); \t \t \t \t //做點別的事 \t \t return rootView; \t} –

相關問題