【问题标题】:Saving the textview background color that has been changed dynamically保存已动态更改的textview背景颜色
【发布时间】:2015-07-09 00:29:31
【问题描述】:

我有 2 个活动 A 和 B。我在 A 中有一个按钮。当我单击 A 中的按钮时,我被带到活动 B。活动 B 有一个文本视图。场景是当我单击 B 中的文本视图时,其背景颜色应变为红色。我能够做到这一点。但是当我按下返回按钮 -> 转到活动 A -> 然后再次按下按钮进入活动 B - 红色背景色消失了。

我想永远保存背景颜色,即一旦我单击 textview 并更改其背景颜色,无论我在活动之间切换或关闭应用程序并重新启动它,它的背景颜色都应该保存该值。有人可以帮忙吗?

【问题讨论】:

  • 当用户点击TextView时,将状态保存在SharedPreferences中,然后在Activity B的onCreate方法中从SharedPreferences中读取状态并设置背景。这是一个简单的解决方案,当您面对更多数据时可能需要SQLite。

标签: android


【解决方案1】:

SharedPreferences 可以解决您的问题:

这里的例子:

exmple 1

exmple2

【讨论】:

    【解决方案2】:

    在Activity B中,使用里面的SharedPrefrences获取之前的值onCreate()

    SharedPreferences prefs = getSharedPreferences("pref_name", Context.MODE_PRIVATE);
    boolean isAlreadyRed = prefs.getBoolean("isRed",false);
    if(isRed){
       //button color change logic
    }
    

    在你的按钮的 onClick() 里面,放下面的代码。

    SharedPreferences.Editor editor = prefs.edit();
    editor.putBoolean("isRed", true);
    editor.commit();
    

    【讨论】:

      【解决方案3】:

      如果你想永久保存它,那么你可以使用 SharedPreferences 或 sqlite,或者如果你想在应用程序运行时保存颜色,那么在这种情况下,你可以将颜色的十六进制值保存在任何类变量中,或者你可以将其存储在应用程序级别。

      【讨论】:

        猜你喜欢
        • 2011-12-26
        • 2015-12-17
        • 2014-04-05
        • 1970-01-01
        • 2014-06-06
        • 1970-01-01
        • 2014-06-12
        • 1970-01-01
        相关资源
        最近更新 更多