首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Symbian >

急切怎么让弹出的CAknListQueryDialog中的checkbox都不选择

2012-12-24 
急切求助:如何让弹出的CAknListQueryDialog中的checkbox都不选择?在使用CAknListQueryDialog的过程中发现

急切求助:如何让弹出的CAknListQueryDialog中的checkbox都不选择?
在使用CAknListQueryDialog的过程中发现一个让我很郁闷问题:
使用CAknListQueryDialog,弹出一个带有复选列表的对话框,我把所有的checkbox都设置成未选择,在按左软键确定的时候,焦点所在的checkbox就会被选择,这样在if(dialog->RunLD()){}中取得的选中状态的数据就包含了一条选中的数据,这样这个复选列表永远不可能实现全部不选的情况
请问下有没办法解决这个问题呢?谢谢
[最优解释]
没说过是Listbox的问题。自己定制的话可以重新实现确认按钮的行为,
不过你可以先尝试重写CAknListQueryDialog的确认按钮的行为,只是可能不会有好的结果。
[其他解释]
这个类的行为就是这样子。可以自定义一个列表,然后放在对话框中显示。Nokia wiki中有相关文章,搜索“custom control”。
[其他解释]
首先谢谢你的回答。
你的意思是我自定义一个含有checkbox的ListBox?然后用自定义的这个ListBox取代我资源文件中配置的ListBox?
但是我怎么觉得这个问题的原因不是ListBox的问题啊,感觉是CAknListQueryDialog自带的那个“确认”按钮的事件处理的问题,感觉点击确定后CAknListQueryDialog对ListBox做了一个检查,如果没有被选中的checkbox就默认选中当前焦点所在的checkbox,假如有选中的话就不再选中当前焦点的checkbox。
这个CAknListQueryDialog是通过资源文件创建的。创建代码如下:
RESOURCE AVKON_LIST_QUERY r_detail_container_checkboxgroup
    {
    items =
        {
        AVKON_MULTISELECTION_LIST_QUERY_DLG_LINE
            {
            control = AVKON_LIST_QUERY_CONTROL
                {
                heading = "Select items:";
                listtype = EAknCtSingleGraphicPopupMenuListBox;
                listbox = AVKON_MULTISELECTION_LIST_QUERY_LIST
                    {
                    };
                };
            }
        };
    }
c++的代码如下:
CAknListQueryDialog* query =
                new (ELeave) CAknListQueryDialog(iRtnIndex);//为了在RunLD()后的逻辑块中取得选中的索引
        query->PrepareLC(R_DETAIL_CONTAINER_CHECKBOXGROUP);
        query->SetItemTextArray(iListQueryItemArray);
        // keep ownership of the item array. Only call this after setting the item array!
        query->SetOwnershipType(ELbmDoesNotOwnItemArray);
        query->ListBox()->SetSelectionIndexesL(iRtnIndex);//为了设置默认选中项
        if (query->RunLD())
            {
             //iRtnIndex中包含选中的行的索引,iListQueryItemArray放置的是每个checkbox的label内容
             .............
            }

------其他解决方案--------------------


重写CAknListQueryDialog的确认按钮事件,我也是这么想的,但这会带来很多潜在的问题以及时间上的开销;但是仔细一想,symbian s60操作系统不会这么弱智吧,弹出的多选列表窗口不允许不选择?
在android上的开发经验让我感觉这个问题symbian应该解决了吧,所以我以为有哪个标志位没设置对呢,现在看来这个问题是symbian当时的设计没考虑周全导致的呢还是我没使用对控件导致的呢?

热点排行