保存复选框状态

2024-05-15

我是个新手,如果有人能够演示在 Android 应用程序内的 java 中保存多个复选框状态所需的代码,我将不胜感激。

假设我有一个用户完成任务所需的工具列表(十个或更多),并希望他们能够检查每个工具并保存数据(在应用程序内,而不是 sqlite),以便在他们返回到应用程序。

我对这是如何完成的有一些想法,但我真的觉得我需要查看代码才能正确理解。

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.CheckBox;

public class CheckBoxTest extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.checkboxtest);
    CheckBox cb1,cb2,cb3,cb4;

    cb1 = (CheckBox)findViewById(R.id.checkBox1);
    cb2 = (CheckBox)findViewById(R.id.checkBox2);
    cb3 = (CheckBox)findViewById(R.id.checkBox3);
    cb4 = (CheckBox)findViewById(R.id.checkBox4);   
     }
 }

使用以下代码存储和检索共享首选项中的数据。您将每个复选框状态保存在 SharedPreference 中

//从SharedPreference中获取值

SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
boolean value = preferences.getBoolean("KEY", false);
String value = preferences.getString("KEY");

//将值保存在SharedPreference中

SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("KEY", value);
editor.putBoolean("KEY", value);
editor.commit();

看看它的一些小变化::::

public class CheckBoxTest extends Activity implements OnCheckedChangeListener {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.favorites_add_button);
            CheckBox cb1,cb2,cb3,cb4;

            cb1 = (CheckBox)findViewById(R.id.checkBox1);
            cb1.setChecked(getFromSP("cb1"));
            cb1.setOnCheckedChangeListener(this);
            cb2 = (CheckBox)findViewById(R.id.checkBox2);
            cb2.setChecked(getFromSP("cb2"));
            cb2.setOnCheckedChangeListener(this);
            cb3 = (CheckBox)findViewById(R.id.checkBox3);
            cb3.setChecked(getFromSP("cb3"));
            cb3.setOnCheckedChangeListener(this);
            cb4 = (CheckBox)findViewById(R.id.checkBox4);
            cb4.setChecked(getFromSP("cb4"));
            cb4.setOnCheckedChangeListener(this);

        }
        private boolean getFromSP(String key){
        SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
        return preferences.getBoolean(key, false);
        }
        private void saveInSp(String key,boolean value){
        SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putBoolean(key, value);
        editor.commit();
        }
        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {
            // TODO Auto-generated method stub
            switch(buttonView.getId()){
            case R.id.checkBox1:
            saveInSp("cb1",isChecked);
            break;
            case R.id.checkBox2:
            saveInSp("cb2",isChecked);
            break;

            case R.id.checkBox3:
            saveInSp("cb3",isChecked);
            break;

            case R.id.checkBox4:
            saveInSp("cb4",isChecked);
            break;
            }

        }
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保存复选框状态 的相关文章

随机推荐

  • IntelliJ:查看本地和 git 提交/分支之间所有已更改文件的差异

    使用 IntelliJ 的 diff 查看器是检查代码的一种非常好的方法 因为您可以使用 IntelliJ 代码编辑器的所有功能 重构 完成等 在本地版本中进行更改 不幸的是 我还没有弄清楚当你在 IntelliJ 中进行代码审查时如何做最
  • 如何解决 VSTS 中拉取请求中的合并冲突?

    我已经创建了拉取请求 我进入了这个 批准 按钮不执行任何操作 并且 完成 被禁用 如何解决拉取请求中的冲突 Update 微软刚刚添加了基于浏览器的合并 这可能会让你摆脱小冲突的困境 并提供自 Sprint 150 起改进了不同场景的可视化
  • 树的递归和非递归过程

    我们知道树是递归数据结构 我们在编写树的过程中使用递归 例如BST的删除方法等 递归的好处是 我们的程序变得非常小 例如中序遍历的代码只有4或5行 而不是非递归程序 虽然会很长 但从理解的角度来看 不像递归程序那么复杂 这就是为什么我讨厌递
  • 横向旋转到纵向时的字体大小怪异 - CSS 媒体查询 - iPhone5 Safari

    我已经用谷歌搜索了这个 但无法弄清楚 谢谢你的帮助 Studiolynch com 响应式和流体布局 在 iphone 5 Safari 中完美运行 除了从横向模式旋转到纵向模式会使字体大小小于应有的大小 但是 如果您最初以纵向模式加载页面
  • Fullcalendar 不显示 15 分钟时段的轴时间

    我将全日历设置为有 15 分钟时段 但它没有显示分钟突破 例如 它将显示上午 9 点 上午 10 点 上午 11 点等 但不显示上午 9 点 上午 9 15 上午 9 30 等 它显示了其他时段的分钟突破 例如 10 分钟 但我无法让它工作
  • 无论如何要解密加密的sql server存储过程吗?

    我有几个 ms sql server 2000 存储过程 很久以前就被前雇员加密了 一切都很好 直到我们需要稍微改变一下 有什么方法可以检索源代码吗 或者重写是唯一的选择 多谢 或者免费 谷歌是你的朋友 http searchsqlserv
  • 使用仅具有 CA 证书且无密钥库的 SSLContext

    我需要设置一个javax net ssl SSLContext用于 Jersey Client 应用程序 我想要做的就是接受自定义根 ca 证书的上下文 真的没有办法生成密钥库文件并导入 CA 证书吗 确实没有办法生成密钥库 文件并导入CA
  • http模块和express模块​​有什么区别?

    我正在学习 NodeJs http www tutorialspoint com nodejs http www tutorialspoint com nodejs 我无法理解使用 http 模块 get post 方法 与使用expres
  • 在 httpclient 中,将 HttpEntity 转换为字符串的最优雅/正确的方法是什么?

    我正在使用以下方式获取网页Apache httpcomponents Java 库 http hc apache org 连接后我得到的结果是HttpEntity http hc apache org httpcomponents core
  • Liferay 7.3:如何预配置嵌入页面片段中的 portlet?

    我们正在使用 Liferay 7 3 CE 并尝试将 内容页面 与 页面片段 这一相对较新的功能结合起来 我们能够使用以下方法开发已经包含 portlet 在内容页面的上下文中称为 小部件 的页面片段
  • 如何正确地将代码从angularjs迁移到reactjs

    我正在尝试将代码从 Angular 迁移到 React 不确定这是否正确 只是需要一些帮助 看看我是否朝着正确的方向前进 我不知道角度 所以我很困惑 文本数据 是否类似于反应中的状态 我是否必须在顶部的状态中声明它 角度代码 scope t
  • 在对 VSTS API 的 Ajax 调用中使用 OAuth Bearer Token 而不是 PAT

    我已成功让我的 ASP NET MVC5 应用程序在服务器端用 C 读取和写入 VSTS 工作项 然而 为了获得最佳的用户体验 我真的想使用 Ajax 进行一些更新 我已经能够使用在我自己的帐户下创建的个人访问令牌 PAT 完美地完成此操作
  • 如何使用 Smack API 通过 AccountManager 的身份验证令牌向 Google Talk 进行身份验证?

    这个问题类似于 使用 authToken 对 Google Talk XMPP Smack 进行身份验证 https stackoverflow com questions 6194899 authenticate to google ta
  • 我如何从其他java类调用activity类?

    我刚刚开始安卓 我只是想知道如何从其他java类调用activity类 我只想将类对象传递给活动类 请帮忙 public class GsonParser extends Activity Called when the activity
  • Powershell:复制时自动更改文件属性

    我有一个只读文件的文件夹 当我将这些文件之一复制到测试位置时 我希望能够复制它们而不保留其原始属性 我可以做到这一点 但这很长 copy item srcfilefullname destfilefullname set itemprope
  • 如何在 Mac 终端上运行 adb?

    adb shell run as data data com mypackagename returns 找不到 adb 命令 虽然我在目录中看到 adb Users me Library Android sdk platform tool
  • 在另一个 AppDomain 中创建类型的实例

    我的场景是 我有一个创建 AppDomain 的 net 应用程序 假设是控制台应用程序 然后 它需要创建实例并调用该 AppDomain 中类型的方法 每个AppDomain都有一个特定的目录 它的依赖项应该在其中 该目录不在控制台应用程
  • 在 Fish Shell 中设置导出

    我安装了多个版本的 PHP 对于我的正常开发 我总是使用通过自制程序安装的 PHP 5 5 x 在鱼壳里 which php php version gt usr local bin php gt PHP 5 5 8 cli built J
  • 如何使用 phantomjs 等待 iframe 在 selenium python 中加载

    获取页面的脚本是 from selenium import webdriver from selenium webdriver support ui import WebDriverWait from selenium webdriver
  • 保存复选框状态

    我是个新手 如果有人能够演示在 Android 应用程序内的 java 中保存多个复选框状态所需的代码 我将不胜感激 假设我有一个用户完成任务所需的工具列表 十个或更多 并希望他们能够检查每个工具并保存数据 在应用程序内 而不是 sqlit