我想製作一個支持縱向和橫向的應用程序。佈局有兩個窗格,左側是選項,右側顯示結果。當選擇一個選項時,右窗格顯示它。但對於肖像來說,沒有足夠的空間,所以需要單獨的活動。每個選項都會生成不同類型的片段,因此當活動之間的所有更改都是在其中添加片段時,我不希望爲每個選項製作活動。我想把主要活動的一個片段傳遞給新的,我該怎麼做?在活動之間傳遞片段
4
A
回答
4
我想從主要活動傳遞一個片段到新的片段,我該怎麼做?
你不會。至多,你會遵循@ Ribose的答案 - 通過一個額外的標誌傳入活動,以指示要創建的片段集合。
5
編輯:移動什麼asker實際上想要頂部。
如果您想在創建數據時將數據傳遞給Activity,請在startActivity()
中使用的意圖調用版本Intent.putExtra()
。然後,您可以使用getIntent().getStringExtra()
(例如)在活動中獲得額外的字符串。
假設您在第一個活動myString
中有一段字符串數據。
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra(EXTRA_NAME_CONSTANT, myString);
startActivity(intent);
現在在onCreate
新的活動,你會怎麼做:
String myString = this.getIntent()
.getStringExtra(EXTRA_NAME_CONSTANT, "default return value here");
的幾個注意事項:
- 對於
EXTRA_NAME_CONSTANT
,我的意思,使形式的字符串常量「your.package.name.SomeString」例如「com.example.MyString」。就我個人而言,我甚至會使用資源(以getString(R.string.extra_my_string)
的形式訪問)獲取額外的名稱。他們建議您在軟件包名稱前加上前綴。 - 你可以放置並獲取從字符串到數組的許多類型的數據,甚至是可序列化的數據。
而不是使一個separete活動不同的佈局方向的考慮using resource qualifiers to provide alternative layouts。
總之,讓兩個佈局的結構,像這樣:
/res/layout/yourlayout.xml
/res/layout-land/yourlayout.xml
如果雙方XML文件的命名一樣。然後將您的默認肖像佈局設置爲一個,並在另一個橫向版本中進行佈局。
當您在onCreate
中膨脹佈局(並且在運行時在佈局更改時自動進行佈局)時,它將爲您選擇正確的佈局。
相關問題
- 1. 如何在活動和片段之間傳遞對象
- 2. 如何在活動和viewpager片段之間傳遞值?
- 3. 在活動和片段之間傳遞數據或行爲
- 4. 如何在活動和片段之間傳遞ImageView?
- 5. 在片段活動之間傳遞數據到另一個活動
- 6. 傳遞數據片段之間到活動
- 7. 片段和活動之間沒有傳遞值
- 8. 片段和活動之間傳遞的參數爲空
- 9. Android,將活動傳遞給片段活動,片段
- 10. 在片段之間傳遞arrayadapter和arraylist
- 11. 在片段之間傳遞對象
- 12. 在片段之間傳遞視圖
- 13. 在片段之間傳遞ArrayList和Parcelable
- 14. 如何在活動之間傳遞ObservableInt?
- 15. 在活動之間傳遞2D對象
- 16. 在3個活動之間傳遞值
- 17. 在Android活動之間傳遞數據
- 18. Android在活動之間傳遞數據
- 19. 在活動之間傳遞數據
- 20. 在活動之間傳遞數據
- 21. 在活動之間傳遞Parcelable項目
- 22. 在活動之間傳遞ArrayList
- 23. 在活動之間傳遞密碼
- 24. 在活動之間傳遞Drawables
- 25. 在活動之間傳遞對象
- 26. 在活動之間傳遞DefaultHttpClient
- 27. Android在活動之間傳遞變量
- 28. 在活動之間傳遞parcelable對象
- 29. 在同一時間將參數傳遞給活動和片段
- 30. 在android中的2個片段之間傳遞數據而不使用活動?
我並不是想針對不同的佈局方向進行單獨的活動,但是如果您有兩個窗格並且它們都不適合,則需要爲第二個窗格創建一個新活動。我想將片段從一個活動傳遞給另一個活動。每個選項都會生成一個包含複選框和編輯文本的佈局,因此沒有兩個選項共享相同的佈局。 – Hank
哦,非常好。通過模糊的單詞「片段」,我仍然認爲你的意思是你想要的任何類型的數據。我會更新我的答案。 – Ribose
片段不能使用這種方法放在Extra中,當我的意思是片段時,我的意思是:http://developer.android.com/reference/android/app/Fragment.html – Hank