從Activity調用findViewById()
只能訪問作爲該Activity佈局一部分的Views。您不能使用它來搜索任何其他活動的佈局。
根據您的應用程序的設計,您可以使用其中的一個:
1)通過一個Intent額外
發送切換到SecondActivity的值。在活動:
Intent mIntent = new Intent(this, SecondActivity.class);
mIntent.putExtra("switch", s.isChecked());
startActivity(mIntent);
In SecondActivity:
boolean isChecked = getIntent().getBooleanExtra("switch", false);
2)的值保存到上變化的偏好,和在SecondActivity
讀偏好在活動:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor e = settings.edit();
e.putBoolean("switch", s.isChecked());
e.commit();
在SecondActivity:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
boolean isChecked = settings.getBoolean("switch", false);
可能重複:http://stackoverflow.com/a/10577852/2777098 – 2014-10-31 14:00:08
@IsabelHM我已經告訴Android的沒有按」 t在擴展廣播接收器的類中識別findViewById。我已經讀過這個問題,完全不同。 – 2014-10-31 14:01:58
您的BroadcastReceiver沒有UI(因此沒有開關),所以它不會讓你找到ViewById()。 – 2014-10-31 14:06:38