1

所以,我希望這個問題不隱約描述,我的情況是這樣的:如何使用可重用活動在我的應用中定義不同的活動流程?

在我的應用我有三個流(顯然可以更在未來,但我必須儘快提供這個應用程序,以滿足需求並像往常一樣盡我所能爲我旁邊的人打下堅實的基礎),因此,在這三個流程中,每個步驟都有四個步驟,每一步都非常簡單,只需取一條數據並沿着它傳遞直到流程結束。

所以,我的問題是:從容易實現和可擴展的角度來看,這將是「最佳」方法,能夠定義重用某些活動的流程。換句話說,我有類似:

流1:

A到B到C到d顯示所有收集到的數據

流程2:

A至E到C到D顯示所有收集的數據

流程3:

A到F與G到d顯示所有收集到的數據

如何應該是數據的處理,我怎麼能到這是自己後下一個,除了我使用一個操作欄每個活動說這將有一個後退箭頭,所以無論如何你可以回到前一步並編輯你之前選擇或創建的數據。

也許「最好」這個詞不適合,因爲我不是要求簡單的意見,而是要求建議的方法在Android應用程序中執行此操作,因爲這是一種情況,我會說很多應用程序必須處理。

更新我:

第一輪實施這個流程我得到了工作,則下列方法,(一種碎僞Java代碼簡短)

// ActionBarActivity suppose to offer me the change to deal with actionBar and fragment otherwise just Fragment 
Flow1Activity extends ActionBarActivity implements AFragmentListener 
    onCreate { 
     newFragment = new FragmentA(); 
     generateTransactionTo(newFragment); 
    } 
    generateTransactionTo(android.app.Fragment newFragment) { 
     FragmentTransaction transaction = getFragmentManager().beginTransaction(); 

     transaction.replace(R.id.container, newFragment); 
     transaction.addToBackStack(null); 

     transaction.commit(); 
    } 
    onAfragmentConfirmed() { 
     // do whatever... 
    } 

之後,每片段有自己的活動持有者應該實現的內部接口(可能在接下來的每個片段中,您將調用此注入接口),如下所示:

FragmentA extends Fragment 
    public interface AFragmentListener { 
     void onAFragmentConfirmed(); 
    } 
    onAttach(Context context) { 
     super.onAttach(context); 
     Activity activity = getActivity(); 

     try { 
      mAFragmentListener = (AFragmentListener) activity; 
     } catch (ClassCastException e) { 
      throw new ClassCastException(activity.toString() + " must implement AFragmentListener"); 
     } 
    } 
    onClickSomething() { 
     mAFragmentListener.onAfragmentConfirmed() 
    } 

我現在的問題是動作條不工作,我會期望,我設置我的行動吧做這樣:

ActionBar actionBar = getSupportActionBar(); 
    if (actionBar != null) { 
     actionBar.setDisplayHomeAsUpEnabled(true); 
     actionBar.setHomeButtonEnabled(true); 
     actionBar.setElevation(0); 
    } 

但按鈕後面顯示的螞蟻它不會做任何事情,如果我回擊對Android按鈕下方進入到分組活動:(

相關鏈接:

回答

2

一種選擇是將屏幕實現爲碎片。

每個片段都有一個回調活動(例如showNext)。 然後你可以爲每個Flow實現一個Activity。

E.G. 活動1示出了片段A - >乙 - 「ç - > d 活動2示出了片段A - >電子 - 」ç - > d 活動3示出了片段A - >的F - 「G - > d

這是乾淨的和可擴展的,因爲它將問題分開。

片段:在屏幕上顯示 活動內容:屏幕

+0

之間導航因此,當一個片段叫「秀未來」的包裝活動知道該給誰打電話?一旦顯示新的片段並且前一個從當前視圖中移除後退按鈕具有發生什麼的堆棧引用,那麼後退按鈕會發生什麼? (對不起,但我想仔細檢查一下我是否理解這種方法) –

+0

替換片段時,只需將其添加到片段返回堆棧中,以便支持後退導航。 – cyroxis

相關問題