2015-05-07 52 views
0

我想在我的設置活動(在不同的顏色,聲音等之間進行選擇)中更改另一個活動(開始)的背景顏色。如何從其他活動獲取背景?

如何更改另一活動的顏色?

我想從我的創業活動(ID:啓動)背景下的:

final RelativeLayout background = (RelativeLayout) findViewById(R.id.start); 

,但現在看來,這doesn't工作。

設置,活動的完整代碼:

public class activity_settings extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_activity_settings); 
    ColorChange(); 
} 

public void ColorChange() { 
    final RelativeLayout background = (RelativeLayout) findViewById(R.id.start); 

    final RadioButton ChangeToBlue = (RadioButton) findViewById(R.id.button_blue); 
    final RadioButton ChangeToRed = (RadioButton) findViewById(R.id.button_red); 


    final Button button_save = (Button) findViewById(R.id.button_save); 
    button_save.setOnClickListener(new Button.OnClickListener() { 
     public void onClick(View v) { 
      ChangeOption(background); 
     } 
    }); 


    ChangeToBlue.setOnCheckedChangeListener(new RadioButton.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      ChangeToBlue(background); 
     } 
    }); 

    ChangeToRed.setOnCheckedChangeListener(new RadioButton.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      ChangeToRed(background); 
     } 

    }); 


} 



public void ChangeOption(RelativeLayout background) { 
    if (background.isEnabled()) { 
     background.setEnabled(false); 
    } else { 
     background.setEnabled(true); 

    } 
} 

public void ChangeToBlue(RelativeLayout background) { 
    background.setBackgroundColor(Color.BLUE); 
    background.invalidate(); 

} 
public void ChangeToRed(RelativeLayout background) { 
    background.setBackgroundColor(Color.RED); 
    background.invalidate(); 

} 




@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_activity_settings, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
}} 
+0

我不太明白你的意思,所以你想改變startActivity()調用的新活動的背景顏色? –

+0

利用廣播接收機,用一些意圖過濾器註冊您的第一個活動的onCREATE。 當您導航到設置活動並且您的第一個活動在後臺但尚未銷燬時,您仍然可以監聽設置活動發送的廣播以更改背景。 – Napolean

回答

1

保存顏色代碼,即#從一個sharedPreference您的設置活動F0F0F0並獲得要設置背景活動的onCreate()這個值。