当前位置: 首页 > 知识库问答 >
问题:

如何在每次打开应用程序时使多个复选框保持相同状态?

夔学智
2023-03-14

这是我的适配器类,我必须选中复选框,当再次打开应用程序时再次单击,我的数据被正确地保存在首选项中,并且也比较好,但问题是它没有在循环内显示选中的复选框,任何帮助都将被认可

    @Override
public View getView(final int position, View convertView, ViewGroup parent) {

    //getting sharedpreference DATa here
    animals = PoJo.readList(context, "savingkeyforcheckbox");
    final RecordHolder holder;
    view = convertView;
    mInflater = (LayoutInflater) context
            .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    if (view == null) {
        view = mInflater.inflate(R.layout.items, parent, false);
        holder = new RecordHolder();
        holder.icon = (ImageView) view.findViewById(R.id.icon);
        holder.packagename = (TextView) view.findViewById(R.id.packagename);
        holder.clickpackage_checkbox = (CheckBox) view
                .findViewById(R.id.clickpackage_checkbox);
        view.setTag(holder);
    } else {
        holder = (RecordHolder) view.getTag();
    }
    holder.clickpackage_checkbox.setId(position);
    holder.packagename.setId(position);
    item = getItem(position);
    if (animals.size() > 0) {
        for (int i = 0; i < animals.size(); i++) {
            if (animals.get(i).equalsIgnoreCase(item.getLabel())) {
                Log.e("do check here", "CHECK");
                holder.clickpackage_checkbox.setChecked(true);
            } else {
                holder.clickpackage_checkbox.setChecked(false);

            }
        }
    } else {
        holder.clickpackage_checkbox.setChecked(false);
    }
    if (booleanArray.get(position)) {
        holder.clickpackage_checkbox.setChecked(true);
        item.setChecked(true);
    } else {
        holder.clickpackage_checkbox.setChecked(false);
        item.setChecked(false);
    }

    holder.packagename.setText(item.getLabel());
    Drawable icons = Utilities.createIconThumbnail(item.getIcon(), context);
    holder.icon.setImageDrawable(icons);
    holder.clickpackage_checkbox.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            if (holder.clickpackage_checkbox.isChecked()) {
                booleanArray.put(position, true);
            selecteditems.add(listofitems.get(position).getLabel());
            } else {
                booleanArray.put(position, false);
                selecteditems.remove(listofitems.get(position).getLabel());
            }
        }
    });
    //POJO IS MODEL CLASS AND SAVING PREFERENCES OF ITEMS IN WRITELIST
    PoJo.writeList(context, selecteditems, "savingkeyforcheckbox");
    SelectedAdapter.this.notifyDataSetChanged();
    return view;
}

共有1个答案

白高超
2023-03-14

您可以使用Getter和Setter保存和检索首选项中的复选框值,并将其设置为checkbox。

 类似资料:
  • 问题内容: 我有一个带有简单复选框的应用程序,当用户按下该复选框时,会在build.prop中添加一行,这是可行的,但是当我退出该应用程序时,该复选框已重置,有没有一种方法可以通过在其中添加示例代码来防止这种情况您的帖子,因为我仍然是Android应用程序的新手。 MainActivity.java activity_main.xml 问题答案: 使用getRuntime()。exec()在哪里得

  • 问题内容: 简而言之,举一个例子,我基本上有一个包含3个活动的应用程序:Activity1 Activity2 StartActivity StartActivity包含两个分别与其他两个活动相对应的按钮,以将其启动。如果我从Activity1退出该应用程序,则稍后在手机中单击该应用程序图标时,由于Android会跟踪该事件,因此Activity1将重新启动。我需要重新启动应用程序才能将我带到St

  • 手动设置“自动取消”标志 改用builder.build() notificationmanger取消(id)和/或取消所有 使用NotificationCompat.Builder 对setContentIntent使用常规启动意图,而不是手动调用StartActivity

  • 我正在创建一个URLClassloader来加载一些JAR。每个jar从不同的classloader中正确加载,每个jar包含一个具有run()方法的类。现在这个run()的主体可以在其中创建一个匿名的内部类。但是,因为我在try-with-resources块中创建了我的URLClassloader,所以它会自动关闭,并且在运行时,当它试图加载匿名内部类时,它会抛出一个NoClassDefFou

  • 如果我打开活动,复选框始终保持选中状态,即使我取消选中它并离开活动或关闭应用程序,在重新启动活动后,它也将保持选中状态。 我已尝试使用以下代码段保存活动的状态。 复选框应始终处于用户离开它的状态(选中或未选中)。

  • 我有一个自定义复选框。我想要的是在选中复选框时打开一个引导模式。我想要一个引导模式打开就像点击一个按钮一样。希望你能理解我的问题。我怎么能做到。