2012-10-21 39 views
1

我應該爲所有的活動放在同一個layout-land文件夾中的xml橫向佈局文件嗎? 如果有3個活動和3個景觀佈局,那麼我應該如何在佈局土地文件夾中將它們命名爲被識別?不同的活動佈局文件

我有2個活動 - A和B,他們每個在layout-land文件夾中都有2個lanscape佈局,但只有活動A可以找到景觀佈局,而活動B找到活動A的景觀佈局並使用它。爲什麼?如何將風景佈局映射到其活動?

//ACTIVITY- A 
    @Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Intent bmr= new Intent(TdeeActivity.this,BMRActivity.class); 
startActivityForResult(bmr,CALLED_ACTIVITY);  

} 

@Override 
protected void onResume() { 
      super.onResume(); 
      setContentView(R.layout.activity_tdee); 
      Button ok=(Button)findViewById(R.id.btnOk); 
      rdActLevel=(RadioGroup) findViewById(R.id.rd); 
      ok.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View arg0) { 
        showResult(); 
       } 

      });    
} 
+0

你能展示一些活動B的代碼嗎?我猜測你在爲這個活動設置內容視圖時做錯了什麼。 –

+0

父活動調用活動A,而活動A又調用活動B.活動B完成後,它顯示活動A(縱向)。但是,如果我將縱向更改爲橫向,則會獲取活動B的橫向佈局(佈局中活動A的名稱相同) – Tanvir

+0

不知何故活動B仍然存在。但是,怎麼來,我記錄它以確認它的結束,它完成並加入到活動A中。然而,如果我改變活動A的方向,它將得到活動B的佈局。 – Tanvir

回答

0

你給他們同樣的名稱作爲一個在縱向模式下,只要你把它們放在正確的文件夾(佈局土地),他們將被自動加載。 是的,如果有意義的話,您確實需要爲景觀中的每個活動提供不同的佈局。

+0

請參閱編輯的部分? – Tanvir

0

Android活動自動識別佈局土地。如果你在android layout-land和portrait模式下放置相同的名稱佈局,並在你的activity類中加載這個佈局,那麼android會自動識別它。

謝謝。

0

這不是一個規則,但最好是預測用戶體驗。如果您未包含一個橫向佈局,則Android會在電話旋轉時自動調整其大小。這可能會導致不良的用戶體驗(如圖像拉伸,Widget尺寸不正確或重疊)。如果您在兩種方向的多種屏幕尺寸上測試您的應用程序,並對結果感到滿意,則無需爲每個佈局添加一個。

對於活動關係,活動數量和佈局數量之間沒有關聯(您可以通過代碼完成很少的更改)。這實際上取決於每個Layout所代表的內容。

在最後一個問題中,您需要命名layout-land中的完全相同名稱的xml文件,以便Android中的layout文件夾正確映射它們。

+0

父活動調用活動A,後者又調用活動B.當活動B完成時,它顯示活動A(縱向)。但是,如果我將縱向更改爲橫向,則會獲取活動B的橫向佈局。(佈局中的活動A的名稱相同) – Tanvir

+0

嘗試在'onResume()'方法中使用'setContentView()'。 –

+0

不工作。活動A開始時,不是顯示自己的佈局(雖然設置了setContentView),而是開始活動B.活動B結束並轉向活動A.請參閱編輯後的文章 – Tanvir