2017-07-19 89 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

如果您有任何疑问,只是说出来。 希望这有助于!

相关问题