我有两个活动A和B。

public class A extends Activity
{
....
@Override
    protected void onResume()
    {
    super.onResume();
    if(MyStaticVarz.myFlag)
    {
                    MyStaticVarz.myFlag= false;
        SomeTask();
    }

}


MyStaticVarz.java:

public class MyStaticVarz
{
    public static boolean myFLag = false;
}


从A转到B,然后将myFlag更改为true,例如:

MyStaticVarz.myFlag = true;


并再次返回A,但在onResume中,如果(MyStaticVarz.myFlag)为false并且未达到SomeTask()。

从A到B像:

Intent i = new Intent(A.this, B.class);
startActivity(i);


更新
SomeTask()用于更改A和B中文本的字体大小。

myFlag用于按需重新初始化UI,如果更改字体设置,则运行SomeTask()。

当单击B中的optionMenu并更改字体大小并转到B时,我看到了更改,但是当返回A时,文本字体大小没有发生。

也许重要:当我回到A且字体大小不正确并且myFlag也为false时,如果我更改格式,则文本字体大小可以,但myFlag再次为false!

最佳答案

您的答案很简单,当您在MyStaticVarz.myFlag中将true更改为getView,然后返回到活动B,在onResume()中,MyStaticVarz.myFlag的值将从true更改为false,然后再返回对于活动A,MyStaticVarz.myFlag的值是false而不是true,显然活动A永远不会获得true值。

要解决此问题,您必须保存更改的值:

String value = entryValues[index].toString();


static String和活动A和B MyStaticVarz事件中的onResume()static String一起检查local String以了解更改。

10-04 22:57