내 앱에서 대화 상자를 사용하여 활동 배경색을 변경할 수 있습니다.
휴대폰에서 앱을 다시 시작할 때 배경색이 변경된 상태로 유지되도록 공유 기본 설정을 사용하려고합니다.
코드가 작동하도록 변경하려면 어떻게해야합니까?
내 코드는 다음과 같습니다.
public class HomeActivity extends Activity {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
int storedPreference = preferences.getInt("storedInt", 0);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
if (preferences.getString("clicked", "yes").equals("nope")){
// it never been clicked
}else{
// it has been clicked before do whatever you want with the background
}
}
private static void setButtonPref(Context ctx, String clicked)
{
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("clicked", clicked);
editor.commit();
}
public void showThemes (){
ListView listView = new ListView(this);
listView.setAdapter(new ArrayAdapter<String>(this, R.layout.theme_list, new String[]{"Green", "Pink", "Orange", "Blue"}));
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
// arg0 is your adapter, arg1 is the view clicked, arg2 is the position and arg3 is the id.
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
switch(arg2){
case(0):
View someView = findViewById(R.id.mainLayout);
View root = someView.getRootView();
root.setBackgroundColor(0xFF00FF00);
setButtonPref(context, "yes");
/*Window window = this.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(0xFF00FF00);*/
break;
case(1):
Toast.makeText(getApplicationContext(), "Coming soon!", Toast.LENGTH_SHORT).show();
break;
case(2):
Toast.makeText(getApplicationContext(), "Coming soon!", Toast.LENGTH_SHORT).show();
break;
case(3):
Toast.makeText(getApplicationContext(), "Coming soon!", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
});
Dialog dialog = new Dialog(this);
dialog.setTitle("Themes");
dialog.setContentView(listView);
dialog.show();
}
에 onCreate()
당신의 SharedPreferences preferences
것입니다 널 (null) 이 내부를 초기화 할 때, onCreate()
그래서 넣어 라인,
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
onCreate()
액세스하기 전에 내부 에서
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
int storedPreference = preferences.getInt("storedInt", 0);
if (preferences.getString("clicked", "yes").equals("nope")){
// it never been clicked
} else {
// it has been clicked before do whatever you want with the background
}
setContentView(R.layout.activity_home);
}
레이아웃에 영향을 미치는 코드가 있기 때문에 한 가지 더 setContentView(R.layout.activity_home);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다