文档章节

CheckBox

当空皓月
 当空皓月
发布于 2015/01/13 16:17
字数 466
阅读 52
收藏 1

 

1、Android中自定义checkbox样式

1.首先在drawable文件夹中添加drawable文件checkbox_style.xml。

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

   <item android:drawable="@drawable/checkbox_pressed" android:state_checked="true"/>

   <item android:drawable="@drawable/checkbox_normal" android:state_checked="false"/>

   <item android:drawable="@drawable/checkbox_normal"/>

</selector>

 

2.在values文件夹下的styles.xml文件中添加CustomCheckboxTheme样式。

<style name="CustomCheckboxTheme" parent="@android :style/Widget.CompoundButton.CheckBox">

   <item name="android:button">@drawable/checkbox_style</item>

</style>

 

3.在布局文件中使用CustomCheckboxTheme样式。

<CheckBox

       android:id="@+id/select_all"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       style="@style/CustomCheckboxTheme" />

 

使用到的图片资源

checkbox_normal.png

checkbox_pressed.png

原文地址:http://blog.csdn.net/zuolongsnail/article/details/7106586 

 

我是新来这个多重选择 listview 。我想要保存的选中的状态 checkbox 在 listview ,如果用户关闭应用程序,然后再次,打开所选 checkbox仍保持选中状态。有任何的方式做到这一点。我寻找它,发现它可以使用 SharedPreference 但我没有得到有关如何使用它的详细信息。谢谢你

public class MainActivity extends AppCompatActivity {

    ListView myList;
    Button getChoice;

    String[] listContent = {

            "January",
            "February",
            "March",
            "April",
            "May",
            "June",
            "July",
            "August",
            "September",
            "October",
            "November",
            "December"

    };

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

        myList = (ListView)findViewById(R.id.list);
        getChoice = (Button)findViewById(R.id.getchoice);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, listContent);
        myList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

        myList.setAdapter(adapter);

        getChoice.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String selected = "";
                int cntChoice = myList.getCount();

                SparseBooleanArray sparseBooleanArray = myList.getCheckedItemPositions();
                for(int i = 0; i < cntChoice; i++){
                    if(sparseBooleanArray.get(i)) {
                        selected += myList.getItemAtPosition(i).toString() + "\n";

                    }

                }

                Toast.makeText(MainActivity.this, selected, Toast.LENGTH_LONG).show();

            }
        });



    }
}

解决方法 1:

你可以在保存状态,例如, SharedPreferences 。

所以你 onCreate 和 onDestroy 方法将会看起来像︰

 

SharedPreferences sharedPreferences = getSharedPreferences("MySharedPrefs", MODE_PRIVATE);

@Override
protected void onCreate(final Bundle savedInstanceState) {
    ...
    Set<String> checkedItemsSource = sharedPreferences.getStringSet("checked_items", new HashSet<String>());
    SparseBooleanArray checkedItems = convertToCheckedItems(checkedItemsSource);
    for (int i = 0; i < checkedItems.size(); i++) {
        int checkedPosition = checkedItems.keyAt(i);
        listView.setItemChecked(checkedPosition, true);
    }
}

@Override
protected void onDestroy() {
    super.onDestroy();
    SparseBooleanArray checkedItems = listView.getCheckedItemPositions();
    Set<String> stringSet = convertToStringSet(checkedItems);
    sharedPreferences.edit()
            .putStringSet("checked_items", stringSet)
            .apply();
}

private SparseBooleanArray convertToCheckedItems(Set<String> checkedItems) {
    SparseBooleanArray array = new SparseBooleanArray();
    for(String itemPositionStr : checkedItems) {
        int position = Integer.parseInt(itemPositionStr);
        array.put(position, true);
    }

    return array;
}

private Set<String> convertToStringSet(SparseBooleanArray checkedItems) {
    Set<String> result = new HashSet<>();
    for (int i = 0; i < checkedItems.size(); i++) {
        result.add(String.valueOf(checkedItems.keyAt(i)));
    }

    return result;
}

http://www.itstrike.cn/Question/4e262f3c-cc4a-4968-abe8-3f0675098f63.html 

© 著作权归作者所有

当空皓月
粉丝 14
博文 179
码字总数 67070
作品 0
郑州
私信 提问
2016-2-23 JS复选框选择

Document

Meaty
2016/02/23
8
0
复选框问题

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <mce:style><!-- --></mce:style><style mce_bogus="1"> </style......

李永china
2016/09/26
6
0
jquery如何判断checkbox(复选框)是否被选中

都知道 在html 如果一个复选框被选中 是 checked="checked"。 但是我们如果用jquery alert($("#id").attr("checked")) 会提示您是true而不是checked 所以很多朋友判断 if($("#id").attr("ch......

老鸟的空间
2014/08/05
89
0
JQuery操作checkbox、radio

(引自 daysmileface的博客) 例:将多个选中的checkbox的值组装成一个字符串 <script type=text/javascript> function addMem(){ //var followers = document.getElementsByName("followers")......

JAVA_NINA
2011/12/08
405
0
如何利用jquery实现一句话全选/取消全选的实例代码

1、当然要引入jquery文件啦。 2、建立函数 var check_all = function(obj,name){$(":checkbox[name='"+name+"']").attr("checked",obj.checked); } 3、使用 复制代码 代码如下: <!DOCTYPE H......

菊花为谁开
2011/03/03
121
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud 笔记之Spring cloud config client

观察者模式它的数据的变化是被动的。 观察者模式在java中的实现: package com.hxq.springcloud.springcloudconfigclient;import org.springframework.context.ApplicationListener;i...

xiaoxiao_go
昨天
6
0
CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部