显示最终活动中的更新数据

时间:2015-04-03 12:54:35

标签: android

我有3项活动:A,B,C。 在活动A中,我从用户处获取Name和Surname,并通过Intent将其传递给活动B. 在活动B中,我得到Number1和Number 2,并将Name,Surname,Number1和Number2传递给活动C,我在TextViews中显示它们。 我想更改活动B中的数据,但如果我更改并将更新后的数字传递给活动C,活动A中的名称和姓氏将在活动C中消失。 如何在最终活动中保留未更改的数据?

活动A

public void button1(View v)
{
    EditText personName = (EditText)findViewById(R.id.textName);
    EditText surname= (EditText)findViewById(R.id.surname);

    name = personName.getText().toString();
    secondname = surname.getText().toString();

    Intent go = new Intent(this, activityB.class);
    go.putExtra("name", name);
    go.putExtra("secondname", secondname);
    startActivity(go);

}

活动B

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_numbers);

Intent info = getIntent();
String name = info.getStringExtra(name, "");
String surname = info.getStringExtra(secondname, "");


}


public void button2(View v)
{
EditText number1 = (EditText)findViewById(R.id.number1);
EditText number2 = (EditText)findViewById(R.id.number2);

num1 = number1.getText().toString();
num2 = number2.getText().toString();

Intent go = new Intent(this, activityB.class);
go.putExtra("number1", num1);
go.putExtra("number2", num2);
go.putExtra("name", name);
go.putExtra("secondname", secondname);
startActivity(go);

}

活动C

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_final);

Intent info = getIntent();
String name = info.getStringExtra(name, "");
String surname = info.getStringExtra(secondname, "");
int number1 = info.getIntExtra(number1, 0);
int number2 = info.getIntExtra(number12, 0);

 ...Show them in TextView
}

然后我在活动C中有一个按钮,它将我发送给A或B以更改数据。如果我仅在B中更改数据,则会在活动C中丢失A的数据。

欢迎任何帮助。

谢谢,Marco

1 个答案:

答案 0 :(得分:1)

确实有助于发布您的代码!但基本上,最简单的实现是make数据持久化。您传递的对象是2个字符串和2个数字 - 这非常适合通过共享首选项进行持久化!

以下是解释如何实施此类解决方案以保持数据持久性的链接:http://developer.android.com/training/basics/data-storage/shared-preferences.html

基本上,您需要创建键值集,这意味着标识键的字符串,然后是包含要保留的数据的字符串/ double / int。

随时提供更多信息和代码,以便我们为您提供更好的帮助!