Search code examples
androidandroid-buttonandroid-sharedpreferences

Change Button color with SharedPreferencers Android?


I would like to make a color change, done with a button, permanent using SharedPreferences. Here is my code:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gunawangsa);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setTitle("Gunawangsa Hotel");

    button1 = (Button) findViewById(R.id.gu_button);

    sharedPreferences = getSharedPreferences("ButtonDisable", Context.MODE_PRIVATE);

    final boolean isEnable = sharedPreferences.getBoolean("ButtonDisable", true);
    button1.setEnabled(isEnable);
    button1.setBackgroundColor(Color.RED);
    button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if (button1.isClickable()) {
                Toast.makeText(getBaseContext(),"Claim",
                        Toast.LENGTH_SHORT).show();
                boolean isEnable = sharedPreferences.edit().putBoolean("ButtonDisable", false).commit();
                if (isEnable == false) {
                    Toast.makeText(getBaseContext(),"Claim",
                            Toast.LENGTH_SHORT).show();
                } else {
                    button1.setBackgroundColor(Color.RED);
                }
            }


        }


    });

}

Solution

  • Try this:

    import android.content.Context;
    import android.content.SharedPreferences;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;
    
    
    public class GunawangsaActivity extends AppCompatActivity {
    
        Button button1;
    
        boolean isEnable;
    
        SharedPreferences sharedPreferences;
        SharedPreferences.Editor editor;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_gunawangsa);
    
            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
            getSupportActionBar().setTitle("Gunawangsa Hotel");
    
            button1 = (Button) findViewById(R.id.gu_button);
    
            sharedPreferences = getSharedPreferences("ButtonDisable", Context.MODE_PRIVATE);
            editor = sharedPreferences.edit();
    
            isEnable = sharedPreferences.getBoolean("ButtonDisable", true);
    
            if (isEnable) {
                button1.setEnabled(true);
                button1.setBackgroundColor(Color.RED);
            } else {
                button1.setEnabled(false);
                button1.setBackgroundColor(Color.GRAY);
            }
    
            button1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
    
                    Toast.makeText(getBaseContext(),"Claim", Toast.LENGTH_SHORT).show();
    
                    editor.putBoolean("ButtonDisable", false);
                    editor.commit();
    
                    button1.setEnabled(false);
                    button1.setBackgroundColor(Color.GRAY);
                }
            });
        }
    }
    

    OUTPUT:

    enter image description here

    Hope this will help~