공유 환경 설정을 참조하면서 백그라운드 이미지를 동적으로 변경하려는 일부 코드로 작업하고 있습니다. 내가 가지고있는 활동의 예는 이것이다 :어떻게 안드로이드에서 다른 클래스의 클래스의 배경/레이아웃을 설정합니까?
public class Splash extends Activity {
protected void onCreate(Bundle inputVariableToSendToSuperClass) {
super.onCreate(inputVariableToSendToSuperClass);
setContentView(R.layout.splash);
Initialize();
//Setting background
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
String user_choice = prefs.getString("pref_background_choice","blue_glass");
LinearLayout layout = (LinearLayout) findViewById(R.id.activity_splash_layout);
ManagePreferences mp = new ManagePreferences();
mp.setTheBackground(Splash.this, user_choice, layout);
//More code after this...
}
}
ManagePreferences 클래스는 다음과 같습니다
public class ManagePreferences {
//Empty Constructor
public ManagePreferences(){
}
public void setTheBackground(Context context, String background_choice, LinearLayout layout){
if (background_choice == "blue_glass"){
layout.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.blue_glass));
} else if (background_choice == "blue_oil_painting")
//etc... with more backgrounds
}
}
문제는이 배경을 설정하는 코드가 다른 클래스에서 작동하지 않습니다. 코드를 Splash 액티비티에 복사하면 코드를 가져올 수 있지만 클래스를 참조하고 메서드를 호출하면 코드가 작동하지 않습니다. 나는 내 코드를 어지럽히 지 않는 것을 선호한다.
저는이 ManagePreferences 클래스를 호출하여 스플래시 활동의 레이아웃 (setBackgroundDrawable)을 변경하려고합니다.
감사합니다.
답을 업데이트했습니다. 도움이 되었습니까? 아니면 내가 너를 오해하고 있니? – Suvitruf