, если вы хотите изменить активность фона в режиме исполнения, или внесите какие-либо изменения из-за пределов Activity Activity2. Перейдите в broadCast. С Activity1 на Activity Activity2, BroadCastReceiver в Activity2 сделайте необходимые изменения. - (это способ смены фона, когда он виден) в вашем случае используйте SharedPreferences для сохранения фона и в onResume() читайте SharedPreferences:
Пример: (здесь я буду писать код без проверки, но вы можете сделать)
public void onClick(View v) {
// set background..
SharedPreferences bgshared= getSharedPreferences("background", MODE_PRIVATE);
SharedPreferences.Editor editor = bgshared.edit();
editor.putString("BKGRND", "bg1").commit();
// OR editor.putString("BKGRND", "bg2").commit();
// OR editor.putString("BKGRND", "bg3").commit();
}
В onResume Do:
SharedPreferences bgshared= getSharedPreferences("background", MODE_PRIVATE);
String Bgfromshared = bgshared.getString("BKGRND", "Error");
if(Bgfromshared.equals("bg1"))
background.setBackgroundResource(R.drawable.customBackground1);
else if(Bgfromshared.equals("bg2"))
background.setBackgroundResource(R.drawable.customBackground2);//other drawable
else if(Bgfromshared.equals("bg3"))
background.setBackgroundResource(R.drawable.customBackground3);
else if(Bgfromshared.equals("Error")); //do no thing (put ;).
UPDATE: (если у вас есть более чем один вид деятельности, использовать один SharedPreferences для всех видов деятельности)
// you are in activity1:
public void onClick(View v) {
// set background..
SharedPreferences bgshared= getSharedPreferences("background", MODE_PRIVATE);
SharedPreferences.Editor editor = bgshared.edit();
editor.putString("BKGRND_ACTIVITY1", "bg1").commit();
// OR editor.putString("BKGRND_ACTIVITY1", "bg2").commit();
// OR editor.putString("BKGRND_ACTIVITY1", "bg3").commit();
}
// you are in activity2:
public void onClick(View v) {
// set background..
SharedPreferences bgshared= getSharedPreferences("background", MODE_PRIVATE);
SharedPreferences.Editor editor = bgshared.edit();
editor.putString("BKGRND_ACTIVITY2", "bg1").commit();
// OR editor.putString("BKGRND_ACTIVITY2", "bg2").commit();
// OR editor.putString("BKGRND_ACTIVITY2", "bg3").commit();
}
В onResume Do:
SharedPreferences bgshared= getSharedPreferences("background", MODE_PRIVATE);
// if you are in activity 1 :
String Bgfromshared = bgshared.getString("BKGRND_ACTIVITY1", "Error");
// if you are in activity 2 :
String Bgfromshared = bgshared.getString("BKGRND_ACTIVITY2", "Error");
if(Bgfromshared.equals("bg1"))
background.setBackgroundResource(R.drawable.customBackground1);
else if(Bgfromshared.equals("bg2"))
background.setBackgroundResource(R.drawable.customBackground2);//other drawable
else if(Bgfromshared.equals("bg3"))
background.setBackgroundResource(R.drawable.customBackground3);
else if(Bgfromshared.equals("Error")); //do no thing (put ;).
Как вы собираетесь иметь 3 'Activities' отображается в то же время? ([ 'ActivityGroup'] (https://developer.android.com/reference/android/app/ActivityGroup.html) устарела сейчас). Вы должны использовать 'Fragments' – Emmanuel
@ Emmanuel. Вы неправильно поняли, что я имею в виду, что действия будут отображаться по одному за раз, но когда вы вносите изменения в текущую деятельность (например, меняя фон активности 1), тогда будет также изменен и другой фон из 2 видов деятельности. Поэтому, например, я нажимаю кнопку в действии 1, тогда ее фон будет изменен, и когда я перейду к другим действиям, их фон также должен был быть изменен. –