android按钮颜色并保存

时间:2018-03-29 12:42:26

标签: android

我想将android button颜色从黑色更改为红色。一旦用户点击按钮,我希望按钮变为红色。然后,当用户退出应用程序并再次打开它时,按钮将保持红色并且该按钮不会被禁用。

2 个答案:

答案 0 :(得分:0)

您可以使用 SharedPreferences

检查以下示例

public class MainActivity extends AppCompatActivity {

    SharedPreferences preferences;
    SharedPreferences.Editor editor;
    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = findViewById(R.id.buttonPanel);

        preferences = getSharedPreferences("Nilesh", MODE_PRIVATE);
        editor = preferences.edit();

        if (preferences.getString("color", "blcack").equals("red")) {
        button.setBackgroundColor(Color.parseColor("#F44336"));
    } else {
        button.setBackgroundColor(Color.parseColor("1D1D27"));
    }


    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            editor.putString("color", "red");
            editor.commit();
            button.setBackgroundColor(Color.parseColor("#F44336"));
        }
    });

    }

}

res->values->color.xml 文件

中添加此颜色
<color name="red">#8B0000</color>
<color name="black">#1D1D27</color>

答案 1 :(得分:0)

根据activity生命周期,根据您的要求使用此代码 就像你说需要它为我的论文我正在制作健身和健康应用程序。当我点击按钮时,它将改变背景颜色,以便用户知道他完成了一天

XML 中,请执行以下操作: -

     <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:background="#000" />

并在您的 Java 文件中执行以下操作: -

public class MainActivity extends AppCompatActivity {

Button button;
int color = Color.parseColor("#fc2828");
int myIntValue;
SharedPreferences sp;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    button = findViewById(R.id.button);
    sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
    SharedPreferences.Editor editor = sp.edit();
    editor.putInt("your_int_key", color);
    editor.commit();


    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
            myIntValue = sp.getInt("your_int_key", 0);

            button.setBackgroundColor(myIntValue);
        }
    });

}

@Override
protected void onPause() {
    sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
    myIntValue = sp.getInt("your_int_key", 0);

    button.setBackgroundColor(myIntValue);
    super.onPause();
}
}

在生命周期中复制并粘贴此代码(如onResumeonRestart)方法: -

 sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
    myIntValue = sp.getInt("your_int_key", 0);

    button.setBackgroundColor(myIntValue);