从另一个Activity更改整数值

时间:2017-11-28 20:03:46

标签: java android

我想要更改来自其他活动的值

Main_activity.java

...
long notify_interval = 1000; //ms
...

但是,在另一个名为system.java的活动中,我有这个代码

btn_normal.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Main_activity.notify_interval = 1000; // HERE <<--
            Toast.makeText(getApplicationContext(), "Interval changed!", Toast.LENGTH_SHORT).show();
        }
    });

但是没有用,有人告诉我,这种方式永远不会奏效。那么,我该怎么办?

---------更新---------

您好,通过这个技巧,我可以在活动之间更改长值

 public static long notify_interval = 1000;

但是,我正在使用AlarmManager,当我关闭应用程序时,系统使用默认值(1000),而不是使用我设置的自定义notify_interval。那么,我该怎么做才能解决它?

2 个答案:

答案 0 :(得分:1)

如果您需要实时执行此操作,请创建interface并使活动实现它,然后将其传递给更新值的地方,并调用更新活动中的值的方法

否则你需要在intent

中添加额外内容

另一种方法是使用RxJavaEventBus

答案 1 :(得分:1)

您可以使用静态变量来执行此操作。

public static long notify_interval = 1000;

在第二次活动中使用

btn_normal.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Main_activity.notify_interval = 1000; // HERE <<--
            Toast.makeText(getApplicationContext(), "Interval changed!", Toast.LENGTH_SHORT).show();
        }
    });

它运作良好。