我有两个活动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
以了解更改。