2012-11-21 38 views
1

我的菜單出現問題。Android onResume佈局問題

我有一個充滿垂直和水平按鈕的背景佈局。看起來是這樣的: http://s7.directupload.net/file/d/3081/sewg79tr_png.htm

所以,當我開始新遊戲(新意向),然後按返回鍵,屏幕布局被打破,看起來真的很可怕: http://s14.directupload.net/file/d/3081/ewfeidya_png.htm

當我切換到另一個應用程序,切換回菜單,佈局看起來像在啓動時看起來。一切安好。

我想刪除所有的按鈕,並重新填寫onResume的佈局,但它不工作,我真的不知道爲什麼。 System.out可以正常工作,但只有在應用程序之間切換時,佈局纔會重置。

有誰知道這個問題?

編輯:背景按鈕的OnClickListener更改了單擊按鈕的背景圖片。這個OnClickListener仍然工作在可怕的破碎的佈局。

@Override 
public void onResume() { 
    super.onResume(); 
    LinearLayout buttonBackgroundLayout = (LinearLayout) findViewById(R.id.buttonHintergrundLayout); 
    //int count = buttonBackgroundLayout.getChildCount(); 
    //System.out.println(count); 
    //for (int i = 0; i < count; i++) { 
    // View child = buttonBackgroundLayout.getChildAt(i); 
    // if (child instanceof View) ((ViewGroup) child).removeAllViews(); 
    //} 
    buttonBackgroundLayout.removeAllViewsInLayout(); 
    buttonBackgroundLayout.invalidate(); 

    createButtonImages(breite); 
    createBackgroundButtons(breite); 
    System.out.println("WOOOHOOO"); 
} 

編輯:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 

    buttonBackgroundLayout = (LinearLayout) findViewById(R.id.buttonHintergrundLayout); 

    createButtons();   

    DisplayMetrics display = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(display); 
    breite = display.widthPixels; 

    createButtonImages(breite); 
    createBackgroundButtons(breite); 
} 
+2

爲什麼你需要刪除onResume()中的所有視圖? – fiddler

+0

這是一個嘗試重新加載完整的背景。沒有這個刪除相同的事情正在發生。這是我第一次修復它。 – user1718339

回答

1

你不應該需要刪除所有的onResume的觀點()。就佈局而言,這應該是您需要做的所有事情。

@Override 
public void onResume() { 
    super.onResume(); 
    setContentView(R.id.buttonHintergrundLayout); 

} 

你也可能想在這裏設置所有onClickListners。但是你在這裏設置的任何東西,你應該在onPause()中刪除。但是,設置視圖基本上是免費的,特別是如果您只是使用已經存在的視圖。

+0

OnClickListeners在onCreate中設置。 所有的按鈕都是用Java代碼製作的,我無法將內容視圖設置爲該佈局。 – user1718339

+0

我在我的第一篇文章中編輯了我的onCreate方法。希望這有助於 – user1718339

0

LinearLayout buttonBackgroundLayout =(LinearLayout)findViewById(R.id.buttonHintergrundLayout);

移動這的onCreate,並只使用一個buttonBackgroundLayout(聲明它globbaly)

我想這個問題是越來越創建

+0

實例不是問題 – user1718339

0

嗯另一部電話的視圖的多個實例的實例(三星)這完全相反。在啓動它看起來不好,從startet遊戲恢復後,它看起來不錯,切換不同的應用程序後,它看起來不好... Wtf!?