当前位置:  编程技术>移动开发
本页文章导读:
    ▪播音机制        广播机制 一、Android广播机制的介绍  BroadcastReceiver是接收器,负责接收由Android系统的广播,Android系统发出的广播并不能决定由谁接收,而是由BroadcastReceiver决定是否接收系统发出的广播,然.........
    ▪ checkbox 在ListView中应用 1        checkbox 在ListView中使用 1 大概有两种方法可以在ListView中使用CheckBox;一种是对一个ListView里的项的数据进行处理,二是对ListView进行处理。现在先对这两的第二种进行讨论。ListView里面有一.........
    ▪ checkbox 在ListView中施用 2       checkbox 在ListView中使用 2 关于全选的问题,因为第一篇文章已经讨论了选中与取消的实现,现在介绍全选的实现。同样是第二种实现方法:ListView有一个setItemChecked方法,现在这个方法用得上.........

[1]播音机制
    来源: 互联网  发布时间: 2014-02-18
广播机制
一、Android广播机制的介绍

 BroadcastReceiver是接收器,负责接收由Android系统的广播,Android系统发出的广播并不能决定由谁接收,而是由BroadcastReceiver决定是否接收系统发出的广播,然后BroadcastReceiver才针对这个广播事件进行相应的处理。

例子:

比如收音机,电台发出来,不管接收对象是谁,他只管发出广播,接不接收这个广播频道由听众决定。

二、BroadcastReceiver的作用

 

三、BroadcastReceiver的编写方法

 

四、BroadcastReceiver的生命周期 

    
[2] checkbox 在ListView中应用 1
    来源: 互联网  发布时间: 2014-02-18
checkbox 在ListView中使用 1
大概有两种方法可以在ListView中使用CheckBox;
一种是对一个ListView里的项的数据进行处理,二是对ListView进行处理。
现在先对这两的第二种进行讨论。
ListView里面有一个方法叫作:setItemChecked这个就是将这个item设置选中或不选中的状态,如果你设置了一个监听:onItemClick然后在里面对这个赋值,且log记录,就会看到当你点击项时,这个值会是true/false间变化,但是可惜,视图却看不到变化。于是利用这个性质,加入一个CheckBox就可以了。
先定义一个ListView:
<ListView
        android:id="@+id/chk_listview"
        android:cacheColorHint="#00000000" android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>
一个简单的布局文件,然后就是一个Adapter:
写一个继承BaseAdapter的子类:
在getView里
Item item;
            if (contentView == null) {
                final LayoutInflater inflater = LayoutInflater.from(getApplicationContext());

                contentView = inflater.inflate(R.layout.list_item, null);
                Item = new Item();
return convertView;
然后就是list_item这个布局文件了
<com.test.CheckLinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="wrap_content">

    <CheckBox
        android:id="@+id/test_chk" android:clickable="false"
        android:focusable="false"   android:layout_width="wrap_content" android:layout_height="wrap_content"/>

    <TextView
        android:id="test"
        android:layout_width="wrap_content" android:layout_height="wrap_content"/>
</com.test.CheckLinearLayout>
然后写一个自定义的
CheckLinearLayout:
extends LinearLayout implements Checkable {

    public static final String TAG="CheckLinearLayout";
    private CheckBox checkbox;

    public CheckLinearLayout(Context context) {
        super(context);
    }

    public CheckLinearLayout(Context context, AttributeSet set) {
        super(context, set);
    }

    @Override
    public boolean isChecked() {
        return getCheckBox().isChecked();
    }

    @Override
    public void setChecked(boolean checked) {
        getCheckBox().setChecked(checked);
    }

    @Override
    public void toggle() {
        CheckBox mChecked = getCheckBox();
        boolean checked=mChecked.isChecked();
        setChecked(!checked);
    }

    private CheckBox getCheckBox() {
        if (checkbox == null) {
            checkbox = (CheckBox) findViewById(R.id.pancheckbox);
        }
        return checkbox;
    }

一些准备工作都完 ,布局文件,自定义的CheckBox,剩下的就是在Activity里处理选中与取消选中状态了:
重要的是ListView需要监听:
public void onItemClick(AdapterView<?> adapterView, View view, int pos, long id) {
            CheckLinearLayout chkLinearLayout = (CheckLinearLayout) view;
            CheckBox mCheckBox = (CheckBox) ((LinearLayout) view).getChildAt(0);

            if (!mCheckBox.isChecked()) {
                if (!checkPosList.contains(new Integer(pos))) {
                    checkPosList.add(new Integer(pos));
                }
            } else {
                if (checkPosList.contains(new Integer(pos))) {
                    checkPosList.remove(new Integer(pos));
                }
            }
        }
           checkPosList这个是一个列表,存着你选中的项的位置,不能存id,在这里id总是为0.。。。
private ArrayList<Integer> checkPosList = new ArrayList<Integer>();;需要注意的是Integer与int的区别,如果上面     checkPosList.remove((pos));会出错,它会认为你移除指定位置的项,但是如果这个列表为空时,会溢出。
这时就可以处理列表点击选中与取消选中操作了。
在下面的图checkboxlist-001.png看到效果


而选中与未选中可能太简单了,通常可能会需要处理全选与取消全选,虽然上央选中后遍历checkPosList得到选中的结果,但是不能处理全选。
这个问题下一篇blog中介绍。

    
[3] checkbox 在ListView中施用 2
    来源: 互联网  发布时间: 2014-02-18
checkbox 在ListView中使用 2
关于全选的问题,因为第一篇文章已经讨论了选中与取消的实现,现在介绍全选的实现。
同样是第二种实现方法:
ListView有一个setItemChecked方法,现在这个方法用得上了。
你的数据列表是:private List mList = new ArrayList();
完成的布局文件是:
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent" android:layout_height="wrap_content">

        <Button
            android:id="@+id/check_all" android:layout_height="wrap_content"
            android:layout_width="wrap_content" android:text="check all"
            android:layout_weight="1"/>

        <Button
            android:id="@+id/un_check_all" android:layout_height="wrap_content"
            android:layout_width="wrap_content" android:text="uncheck all"
            android:layout_weight="1"/>
    <ListView
        android:id="@+id/"
        android:cacheColorHint="#00000000" android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>
</LinearLayout>
加了两个按钮,进行全选与了取消全选。
checkAllBtn = (Button) findViewById(R.id.check_all);
        unCheckAllBtn = (Button) findViewById(R.id.un_check_all);

        checkAllBtn.setOnClickListener(clickListener);
        unCheckAllBtn.setOnClickListener(clickListener);

public void onClick(View view) {
            switch (view.getId()) {
                case R.id.check_all:
                    checkAll();
                    break;
                case R.id.un_check_all:
                    unCheckAll();
                    break;
                default:
                    break;
            }
        }

private ListView mListView;
//全选:
private void checkAll() {
        for (int i = 0; i < mList.size(); i++) {
            if (!checkPosList.contains(new Integer(i))) {这里对已经添加选中状态的就不处理了,
                checkPosList.add(new Integer(i)); 需要添加的是Object不能是int。
                mListView.setItemChecked(i, true);利用了ListView的这个方法,就可以让你的ListView出现选中状态了,如果这句删除了,虽然checkPosList包含了所有的选中项,视图中却看不到,可以试试看效果。
            }
        }
        contactListAdapter.notifyDataSetChanged();
    }

取消全选:
 private void unCheckAll() {
        for (int i = 0; i < mList.size(); i++) {
            mListView.setItemChecked(i, false);将所有的选中状态取消。
        }
        checkPosList.clear();
        contactListAdapter.notifyDataSetChanged();
    }

到此,结束。图片效果:

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android实现动态显示或隐藏密码输入框的内容 iis7站长之家
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3