1

所以我在活动 Home 中有:

setContentView(R.layout.home);

现在,从 Home 活动中,可以转到 Settings 活动,该活动具有:

setContentView(R.layout.settings);

它有几个 CheckBoxes 和 EditTexts。

是否可以从 Home 活动中编辑这些复选框的状态?

我已经像这样在 Home 中声明了它们:

CheckBox checkBox1 = (CheckBox) findViewById(R.id.checkBox1);

哪个发现ID很好,但应用程序在我尝试的那一行崩溃

checkBox1.setChecked(true);

不能从其他活动中访问它吗?

谢谢

4

2 回答 2

1

一般来说,一个活动不能直接修改另一个活动的视图元素,因为 Android 不保证每个活动的生命周期。活动 A 可能会调用活动 B,但如果在显示 B 时内存不足,则可能会破坏 A。

您将需要使用意图将数据从一个活动传递到另一个活动。

于 2012-05-14T12:59:27.600 回答
1

在活动之间传递数据

例如:Main.java

Intent i = new Intent(Home.this,Setting.class);
i.putExtra("check","true"); <-------- set valuse here
            ^^^^    ^^^^
startActivity(i);

并在Setting.java

String str = getIntent().getExtras().getString("check");
                                                 ^^^^
于 2012-05-14T13:00:20.290 回答