如何在第五个活动点击后面的第一个活动时保持五个活动的数据

时间:2017-07-19 10:44:16

标签: android

我正在编写一个应用程序,我正在处理5个活动,比方说A,B,C,D& E.  活动A调用B,B调用C,C调用D,D调用E.在每个活动上,我有一个名为“next”按钮的按钮和editText来填充名称。当用户点击任何A,B,C,D,E活动中的下一个按钮时,应用程序应转到下一个活动屏幕,但当用户单击E活动中的“返回”按钮时,它应该继续进行活动A.

现在我的问题是,当我从活动A开始从背后的活动E开始时,我想保留所有活动的editText数据,这是第一次用户填写的时间吗?

3 个答案:

答案 0 :(得分: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",""));

}

在下一次按钮点击时有自己的保存机制。

注意:点击完成后清除共享首选项(如果需要)

答案 1 :(得分:0)

第1步:首先在MainActivity上使用int值对布尔标志进行decalre假设:

private boolean flag=200;

第2步:从我们正在切换的主要活动中分别按下按钮上的5个其他活动。 因此,从主要活动我们调用StartActivityForResult(intent,flag);,表示我们可以从任何活动返回相同的标志值。

第3步:现在假设我们想要活动数据“E”(根据您的问题),然后我们通过捆绑发送它; like:在我们旅行的每个活动上声明相同的布尔值200

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

第4步:按照onActivityResult()方法获取即将开展的活动的捆绑值 并检查标志值 喜欢:

        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);
        }
    }

答案 2 :(得分:0)

我做了一些与你的需求非常相似的东西,就像你开始参加活动一样,但后来我找到了这个,这让一切变得简单,1个活动有几个片段而不是很多活动,也许你感兴趣的是:{{3} }

以下是常见问题的答案:StepStone

然后,如果你想传递数据,我正在使用Parceler因为我将数据保存在自定义类中,请检查我的问题: ans

如果您有任何疑问,请说出来。 希望这有帮助!