2017-07-19 94 views
0

我正在寫一個應用程序,我正在處理5個活動,比如說A,B,C,D & E. 活動A調用B,B調用C,C調用D,D調用E.在每個activity上,我有一個名爲「next」按鈕和editText的按鈕來填充名稱。當用戶點擊任何A,B,C,D,E活動中的下一個按鈕時,應用程序應該進入下一個活動屏幕,但是當用戶點擊E活動中的後退按鈕時,它應該繼續活動A.如何保持五次活動的數據當第一次活動時點擊第五次活動

現在我的問題是,當我從活動E從後面的活動E按下時開始活動時,我想維護用戶填寫的所有活動的editText數據到第一次時?

回答

0

試試這個:

有共享首選項文件。點擊下一步時,您將這些字段保存在共享首選項中。

加載活動,則當

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_a); 

et1 = (EditText)findViewById(R.id.editText_Name); 
loadSavedPreferences(); 

} 
private void loadSavedPreferences() { 
SharedPreferences sharedPreferences = PreferenceManager 
     .getDefaultSharedPreferences(this); 

et1.setText(sharedPreferences.getString("string_et_Name","")); 

} 

對單擊下一步按鈕,你自己的儲蓄機制。

注:點擊完成(如果需要)

+0

不想使用共享首選項。是否有其他方法可以做到這一點 –

+0

使用* SQLITE *而不是 –

+0

是SQLITE更好更安全 –

0

步驟1時清除共享偏好: decalre與MainActivity int值的布爾標誌第一假設:

private boolean flag=200; 

步驟2:從主要活動我們切換到分別假設其他5個按鈕點擊活動。 因此,從主要活動我們稱爲StartActivityForResult(intent,flag);這表明我們可以回來與任何活動相同的標誌值。

第3步:現在假設我們需要活動數據「E」(根據您的問題),然後我們通過發送它發送它; 像:由onActivityResult()方法,其重寫 並與標誌值 像檢查得到束谷上未來的活動:在每個活動從中我們正在旅行

   Intent intent=new Intent(); 
       intent.putExtra("firstName",firstName); 
       intent.putExtra("lastName",lastName); 
       setResult(flag,intent); 
       finish(); 

步驟4聲明200相同布爾值:

 if (resultCode==200) 
     { 
      String firstName=data.getStringExtra("firstName"); 
      String lastName=data.getStringExtra("lastName"); 

      Intent intent=new Intent(); 
      intent.putExtra("firstName",firstName); 
      intent.putExtra("lastName",lastName); 
      setResult(200,intent); 
      finish(); 
     } 

步驟5:類似地對於所有活動;

第6步:最後,獲得捆綁在MainActivity 像:

@Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

     if (resultCode==200) 
     { 
      String firstName=data.getStringExtra("firstName"); 
      String lastName=data.getStringExtra("lastName"); 

      textViewFirstName.setText(firstName); 
      textViewLastName.setText(lastName); 
     } 
    } 
0

我確實非常相似,你的需求和你一樣,我開始有活動,但後來我發現這一點,這讓所有容易事,有幾個片段,而不是大量的活動1個活動,也許你有興趣:StepStone

這裏的常見問題解答:ans

然後,如果你想傳遞數據,我與Parceler工作,因爲我在自定義類救了我的數據,檢查我的問題: How can i correctly interact between Activities and fragments

如果您有任何疑問,只是說出來。 希望這有助於!

相關問題