2013-11-22 34 views
0

考慮:如何實現以下內容?

  • 6項活動。 (A,B,C,D,E,F)
  • 每個活動由幾個edittext或一個攝像頭實現和下一個按鈕來轉到下一個活動(要打開的活動取決於輸入的值用戶)。
  • 如果edittexts可以顯示或不顯示來自服務器。
  • 確認版面上沒有編輯文本,則只顯示下一個按鈕。

流的應用程序的:A->B->C(->D)->E->F

的活動d打開,只有當某一條件在活動C.

待辦事項滿足:

  • 櫃面,該活動不包含edittext,只有下一個按鈕我應該可以跳過這個活動。
  • 如果我的應用程序的流程是這樣的:A->B->C->E->F然後當我用力按壓背部的流動應該是F->E->C->B->A
  • 如果我的應用程序的流程是這樣的:A->B->C->D->E->F然後當我用力按壓背部的流動應該是F->E->C->B->A
  • 如果我的應用程序的流程是這樣的:A->C->D->E->F這裏我們跳過B,因爲有在活動B沒意見,當我按下難迴流量應該是F-> E-> C->一

我做了什麼:

  • 要跳過活動時沒有字段可裏面的onCreate(),我檢查,如果有任何字段顯示,如果沒有的話,我在堆棧中添加活動名稱,如果它不存在於它,然後打開下一個活動。

    // Block for skipping this screen 
    if (skipScreen) { 
        Intent i = new Intent(B.this, C.class); 
        startActivity(i); 
        finish(); 
    } else { 
        if (!Constants.st.contains(B.class)) { 
         Constants.st.push(B.class); 
        } 
    } 
    
  • 當我按下回從活動中我POP()從棧和PEEK()在堆棧的頂部該活動的名稱和跳轉到該活動。

    public void onBackPressed() { 
        super.onBackPressed(); 
    
        Constants.st.pop(); 
        Intent i = null; 
        if (Constants.st.isEmpty()) { 
          i = new Intent(B.this, A.class); 
        } else { 
          Class<Activity> jumpTo = Constants.st.peek(); 
          i = new Intent(B.this, jumpTo); 
        } 
        startActivity(i); 
        finish(); 
    } 
    
+1

哈哈..這很好解釋..你有沒有使用片段而不是activity.then你加載的活動作爲片段將只有你回來按下,所以你不必做頭痛做你打算做什麼...或者你可以做的是使用ObserverPattern ..很高興看到來自nagpur –

+0

的人感謝,但實施已經完成使用活動,我不認爲我將被允許重新實施它,順便說一句,我現在住在孟買。也來自納格普爾? – dreamer

+0

雅...然後檢查ObserverPattern爲您的實施 –

回答

1

我認爲statePattern將是非常有益的。 Here是一個簡短的教程。

+0

其有趣的我學習,現在,在同一時間,你可以請給上述問題的一個例子的解決方案。 – dreamer