2014-06-20 67 views
0

我有一個PopUpWindow,只要活動開始時就需要加載,它使用屏幕的DisplayMetrics以及其他東西。但是,我收到錯誤「無法添加窗口 - 標記null無效;您的活動正在運行?」行welcome.showAtLocation(popupview2, Gravity.CENTER, 0, 0);如何在彈出窗口後顯示PopUpWindow

我怎樣才能讓PopUpWindow只在資源被檢索到時顯示?我的PopUpWindow充當了飛濺(因此它可以立即淡出onClick),所以窗口必須是用戶看到的第一個東西。

我的代碼:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

LayoutInflater inflater = (LayoutInflater) this 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); 

    dpWidth = displayMetrics.widthPixels/displayMetrics.density; 

    dpHeight = displayMetrics.heightPixels/displayMetrics.density; 

popupview2 = inflater.inflate(R.layout.start_layout, null); 

welcome = new PopupWindow(popupview2, (int) dpWidth, (int) dpHeight); 
    welcome.setAnimationStyle(R.style.Animation2); 

    welcome.showAtLocation(popupview2, Gravity.CENTER, 0, 0); 

} 

基本上,沒有任何形式的 「onResourcesLoaded」 我可以用樣的事情?所有幫助讚賞。

回答

0

當你的代碼調用的系統未準備好衡量指標

把你所有的代碼到這個方法:

@Override 
public void onAttachedToWindow() { 
    // TODO Auto-generated method stub 
    super.onAttachedToWindow(); 

} 

當所有的指標可以因爲使用此方法將被調用活動完全顯示。

+0

那麼這只是去工作!謝謝,親切的編碼<3 – user3658385