問題があります。私は3つのアクティビティ(MainActivity、DetailsActivity、SettingsActivity)を持っており、SettingsActivityにはTogglebutton "Nightmode"があります。私が欲しいのは、ボタンが変更されたときに、3つのアクティビティすべての背景を灰色に変更することです。ボタンで他のアクティビティの背景を変更する
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オブジェクトのnull参照例外を引き起こしていると思います。私はあなたが他の活動にアクセスする別の方法を見つけなければならないと思います。現時点では、クロスアクティビティ通信を行う方法がわかりません。 –
それは私がええについて考えていることです。問題は、私がJavaでのプログラミングでは初心者だということです。私は何かを見つけて欲しいです:P。とにかくありがとう! :) –
私は現時点でできる最善の答えを提出しましたが、少なくともあなたに別のオプションを与えます。 –