你幾乎沒有。 爲MainActivity創建一個更廣泛/通用的接口來實現。 也許類似的東西public void fragClickCallback(int fragId, Bundle data);
你實現這樣你可以做一個switch() case
知道哪些問題是,你的包可以裝於不同類型的答案(int作爲radion按鈕/紡紗,字符串開放答案不同的密鑰等)。
並確保您在每個碎片事務中使用.replace(...)
刪除之前的碎片。
編輯
此外,還有一些你可以建立你的碎片沒有創造幾十億人的一些巧妙的方法。可能有多少種不同類型的問題?讓我們來算:
- 選擇題(單一的答案) - >整數(指數)
- 選擇題(可多選) - >整數(標誌)
- 數字輸入 - >浮點/雙精度
- 編輯文本 - >字符串
- 日期選擇器 - >長(紀元)
- 時間選擇器 - > 3個整數(?)
所以我們有6個片段和處理switch statement
6點的方式,現在它只是傳遞正確的參數的片段
編輯:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("curChoice", mCurCheckPosition);
}
,然後在你的片段ActivityCreated()
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
// Restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
}
這些代碼是從http://developer.android.com/reference/android/app/Fragment.html我建議你進一步閱讀該頁面。 該示例正在恢復光標位置,但您可以使用它恢復以前的用戶答案(文本,整數,浮點數等等)。
所有的問題都有類似的結構嗎?如果他們這樣做,你可以逃脫使用viewpager和fragmentPagerAdapter –
號一些將有選項作爲單選按鈕/微調/ editText –
不得不說,你問這個問題出色。但更好地添加您的回覆馬可在問題本身。 – Krishnabhadra