如何在其他活动中编辑同一对象

时间:2019-04-01 14:16:15

标签: java android

我正在用Java(Android)编程幻灯片。

我有两个活动:

  • MainActivity.java
  • SettingsActivity.java

在我的SettingsActivity中,我将更新对象的MillisSecond。 这是我的对象“ Diapo”:

private int __millis = 4000;


public int getMillis() {return __millis;}

public void setMillis(Integer Millis) {
    __millis = Millis;
}

如何在第二次活动中更新此对象?

问题是我必须在第二个活动中创建一个新的对象Diapo,并且当我返回第一个活动时,MillisSecond不会更新,因为我创建了一个新对象。如何在第二个活动中导入我的第一个对象并对其进行编辑?

谢谢

2 个答案:

答案 0 :(得分:1)

您可以开始第二个活动以获得结果。这样,您可以将数据从第一个活动传递到第二个活动,并根据结果将它们返回到第一个活动。

在MainActivity中:

Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, a_unique_integer_code);

在SettingsActivity中:

Intent returnIntent = new Intent();
returnIntent.putExtra("millisSecond",millisSecond);
setResult(Activity.RESULT_OK,returnIntent);
finish();

并在您的MainActivity中:

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

    if (requestCode == a_unique_integer_code) {
        if(resultCode == Activity.RESULT_OK){
            millisSecond = data.getInt("millisSecond");
        }
        if (resultCode == Activity.RESULT_CANCELED) {
           //if there exists an event where the variable is not set you can do something about it here
        }
    }
}

答案 1 :(得分:0)

您可以创建一个全局Diapo类,只需实例化它即可,而不是创建一个新的类。您创建一个静态类,那么它实际上将是一个Singleton。然后,您可以使用Diapo.updateMillis调用这些方法。

请阅读下面C0D3LIC1OU5的评论