gpt4 book ai didi

android - Activity B 更改后如何在 Activity A 中显示公共(public)文本

转载 作者:行者123 更新时间:2023-11-29 00:06:46 25 4
gpt4 key购买 nike

这可能表明对 Activity 生命周期缺乏最令人震惊的理解,但请谅解。我最终会想要调用 Activity B来自 Activity A多次,每次将不同的参数传递给 Activity B然后由用户响应并存储/设置各种公共(public)变量。作为这方面的先驱,我只想了解如何 Activity A看到对公共(public)变量的更改 Activity B已经改变了。

我有三个非常简单的类:Common.java持有公共(public)变量,主要 Activity MainActivity.java和 child 的 Activity Child.java .现在只有一个公共(public)变量;这是字符串 mess1初始化为 "***" .目前所有代码都在 mainbutton 时执行在 MainActivity 中单击, 它调用 Child .在 Child , 我们立即设置 mess1"Child here"然后在 Child 中设置文本基础TextViewmess1 .单击 childbtn Child 中的按钮, 我们 finish()子 Activity (当然系统会将我们返回到 MainActivity

运行此应用程序时,我们会看到 MainActivity 中显示三颗星。 .当mainbutton按下我们去Child并查看 "Child here"显示。当 childbtn按下,我们返回到MainActivity但是,尽管我们确定 mess1,但三颗星仍然存在现在拥有"Child here" .

我的问题是:1. 为什么,当我们知道 mess1已更改,是否 MainActivity仍然显示 "***"Child返回 Activity ?2.我需要在代码中更改什么才能获得"Child here"显示?

相关代码摘录如下。预先感谢您的帮助。

Common.java

public class Common
{
public static String mess1 = "***";
}

MainActivity.java

public class MainActivity extends AppCompatActivity
{

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button mainbutton = (Button)findViewById(R.id.mainbutton);
TextView maintop = (TextView)findViewById(R.id.maintop);

mainbutton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
startActivity(new Intent(MainActivity.this, Child.class));
}
});

maintop.setText(Common.mess1);
}

Child.java

public class Child extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_child);

TextView childtext = (TextView) findViewById(R.id.childtext);
final Button childbtn = (Button) findViewById(R.id.childbtn);

Common.mess1 = "Child here";
childtext.setText(Common.mess1);

childbtn.setOnClickListener
(new View.OnClickListener()
{public void onClick(View v)
{finish();
}
}
);
}

最佳答案

可能您正在返回堆栈历史记录并且您正在恢复之前处于暂停状态的 Activity ,因此不会调用 onCreate 而是调用 onResume(初始 Activity 的)..

不建议以这种方式使用全局状态,但如果您在 onResume 方法中放置适当的代码,这应该可行。

关于android - Activity B 更改后如何在 Activity A 中显示公共(public)文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33247865/

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