2012-12-03 28 views
0

我想知道爲什麼人們要繼續推薦開始新的活動,當你想顯示另一個屏幕?在相同活動的佈局之間切換:可能但建議?

比方說,我想,以顯示與標籤和edit_text屏幕要求輸入用戶名,然後另一個類似的屏幕問年齡,然後另一個屏幕顯示輸入的數據,並要求確認。

我這樣做:

main_layout.xml: has a button let's say mainButton, onClick="startRegistration" 
name_layout.xml:  edittext asking for name 
age_layout.xml:  edittext asking for age 
confirm_layout.xml: display info + button to confirm 

和:

public class MainActivity extends Activity { 

onCreate(...) { 
    ... 
    setContentView(R.layout.main_layout); 
} 

public void startRegistration(View clickedButton) { 
    setContentView(R.layout.name_layout); 
} 
.. 
} 

...等等,所有的按鍵處理程序是在主類公共無效的方法和每種方法包含setContentView()下一個佈局作爲參數。

我有一種感覺,這是糟糕的編程風格,但它工作得很好。這樣做可以嗎?如果沒有,有沒有其他簡單的方法?爲這樣的事情開始一項新的活動對我來說真的很愚蠢。

回答

0

通常,您將「活動」分組在一個活動中。對你而言,註冊使用多個屏幕,但是彼此鏈接。我建議在ViewFlipper中使用1 Activity。

擁有1個活動將會導致用戶的導航失效。後退鍵必須專門處理。 「如果返回鍵,設置該內容,否則設置此內容等」

+0

我猜你還沒有真正閱讀過我的問題,不過謝謝! –

+0

我看到有一個編輯。我回應說:「爲什麼人們不斷推薦開始新的活動,當你想顯示另一個屏幕?」 – RvdK

0

如果爲同一類型的屏幕那麼它不是一個真正的理想主意代碼的不同佈局。更好的想法是從佈局相同的類中獲得相同的佈局並指向相同的佈局。在想要進行額外/少量控制或不同控制的屏幕上,只需對此類控件設置唯一的ID。

從他們的ID中引用控件,您將擁有一個佈局文件。編寫控件相同的不同佈局類將爲編碼重複鋪平道路,因此不是一種理想的編碼方式。

+0

感謝您的回覆,最後一段很有道理,但我寫的僅僅是一個例子,在我的項目中,佈局更加複雜且完全不同(消息顯示,按鈕,圖像),但它們做了簡單的事情,就像移動通過遊戲菜單(設置,積分,新遊戲等)。 –

+0

如果佈局功能不同,並且在佈局中使用的控件之間沒有太多相似之處,那麼您只能使用一種佈局。但是,如果控件有多個更改,那麼最好使用不同的佈局。當大多數控件是常見的,並且一些控件是不同的時,使用單一佈局。但是,如果許多控件是不同的,並且更改是多個,那麼它總是建議使用多個佈局文件。 – Priety