gpt4 book ai didi

android - 如何通过不同的 Activity 不断改变一个值?

转载 作者:行者123 更新时间:2023-11-30 00:00:57 24 4
gpt4 key购买 nike

我所有的 Activity 将是:

public class XXXXXX extends HomePage {}

在我的主页 Activity 将是:

public class HomePage extends AppCompatActivity {int value;}

虽然我有一些东西,比如点击那个值会加 1 的按钮:

public class XXXXXX extends HomePage {
int times;
button Next;

public void onClick(View view) {
switch (times) {
case 0:
value += 1;
times++;
break;

case 1:
startActivity(new Intent(XXXXXX.this, Showvalue.class));
break;

经过一些 Activity 后,当我尝试在一些 Activity 后获取值时,它将显示“0”:

public class Showvalue extends Homepage {
TextView textview;
textview = (TextView) findViewByid(R.id.textview);
textview.setText(String.valueOf(value));
}

我该如何解决?

最佳答案

发生这种情况是因为每个 Activity 都放置在堆栈上,并带有自己的 value 副本。

您需要做的是在 Application 类中保留一个静态值,以便全局范围内只有一个变量副本可用。

创建应用类:

public class MyApplication extends Application {

private static int value;

@Override
public void onCreate() {
super.onCreate();
value = 0;
}

public static int getValue() {
return value;
}

public static void setValue(int newValue) {
value = newValue;
}
}

AndroidManifest.xml 中指定 MyApplication 类:

  <application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:name=".MyApplication"
android:theme="@style/AppTheme">

现在在一个 activity 中,使用它来设置值:

MyApplication.setValue(1);

...在另一个获取时,使用这个:

int value = MyApplication.getValue();

...或重新设置。无论您需要什么。

希望这对您有所帮助!

关于android - 如何通过不同的 Activity 不断改变一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49927986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com