android listview item与SingleChoiceItems AlertDialog的通讯


场景:笔者定义了一个listview由一个imageview和两个textview组成,当点击listview其中一个item的时候
会弹出一个SingleChoice的dialog,当选择一个choice item后,会根据这个选择更新listview当前item的一个
textview内容.

通讯的方式采用的是message Handler的方式

点击了listiew某个item后,进入SelectDialog.java,其中关键的一步为:
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
    Message msg = new Message();
    msg.what = 0;
    msg.arg1 = which;
    mUIHandler.sendMessage(msg);
    mModeDialog.dismiss();
}

将对应的choice索引通过msg发送出去

在listview所在的activity类中,定义一个handler
private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
            case 0: {
                // Toast.makeText(mContext, mSleepEntries[msg.arg1],
                // Toast.LENGTH_SHORT).show();
                int value = Integer.parseInt((String) mSleepValues[msg.arg1]);
                Settings.System.putInt(getContentResolver(),
                        SCREEN_OFF_TIMEOUT, value);
                if (msg.arg1 + 1 == mSleepEntries.length)
                    map_sleep.put(
                            "SystemStatusText",
                            getString(R.string.screen_never_timeout_summary,
                                    mSleepEntries[msg.arg1]));
                else
                    map_sleep.put(
                            "SystemStatusText",
                            getString(R.string.screen_timeout_summary,
                                    mSleepEntries[msg.arg1]));

                listItemAdapter.notifyDataSetChanged();
            }
                break;
            case 1:
                break;
            case 2:

                break;
            default:
                break;
            }
        }
    };
其中还有关键的一点在于listiew某个item的textview与choice dialog items用到了同一个字符串数组mSleepEntries
通过传递索引值,将对用的值设置到textview
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值