【发布时间】:2016-10-13 21:59:59
【问题描述】:
我有问题。我有 3 个活动(MainActivity、DetailsActivity、SettingsActivity),在 SettingsActivity 中我有一个切换按钮“夜间模式”。我想要的是,当按钮更改时,将所有三个活动的背景更改为灰色。
public class SettingsActivity extends AppCompatActivity {
//This is SettingsActivity(not Main one)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
TextView SettingsTitle = (TextView) findViewById(R.id.SettingsTitle);
TextView NightText = (TextView) findViewById(R.id.NightmodeText);
ToggleButton toggleNightMode = (ToggleButton) findViewById(R.id.toggleNightmode);
final RelativeLayout NightBG = (RelativeLayout) findViewById(R.id.NightBG);
final LinearLayout DetailsBG = (LinearLayout) findViewById(R.id.mainBG);
final LinearLayout HomeBG = (LinearLayout) findViewById(R.id.HomeBG);
toggleNightMode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
NightBG.setBackgroundColor(Color.parseColor("#545657"));
HomeBG.setBackgroundColor(Color.parseColor("#545657"));
DetailsBG.setBackgroundColor(Color.parseColor("#545657"));
}
});
NightBG 与该 java 文件 (SettingsActivity) 处于同一活动中。但是 HomeBG 在 MainActivity 中,DetailsBG 在 DetailsActivity 中。每次我启动应用程序并按下该按钮时,应用程序都会崩溃。如果我从这个文件中删除 HomeBG 和 DetailsBG,它可以很好地将当前布局的颜色更改为灰色。请帮帮我。
【问题讨论】:
-
设置活动中似乎不存在主页和详细信息视图。我想这会导致 nightBG 对象出现空引用异常。我认为您将不得不找到另一种方式来访问其他活动。目前不知道如何进行跨活动通信。
-
我就是这么想的。问题是我是java编程的初学者。我希望我们能找到一些东西:P。不管怎么说,还是要谢谢你! :)
-
我提交了一个我目前能做的最好的答案,它至少会给你另一个选择。
标签: java android android-activity android-togglebutton