Symbian 列表框开发和可标记列表框开发方法
2010-02-03 16:03:00 来源:WEB开发网case EEikCmdExit:
{
Exit();
break;
}
case EMarkListCmdAdd:
{
TBuf<16> buf;
CAknTextQueryDialog* dlg = new(ELeave) CAknTextQueryDialog(buf);
if(dlg->ExecuteLD(R_AVKON_DIALOG_QUERY_VALUE_TEXT))
{
iAppContainer->AddRecordL(buf);
}
break;
}
case EMarkListCmdDelete:
{
iAppContainer->DeleteRecordL();
break;
}
case EAknCmdMark:
case EAknCmdUnmark:
case EAknMarkAll:
case EAknUnmarkAll:
{
iAppContainer->HandleMarkCommandL(aCommand);
break;
}
default:
break;
}
}
其中HandleMarkCommandL(aCommand)是容器类自定义的函数,该函数又把标记命令转交给列表框处理,列表框负责记录用户标记了哪些列表项,并负责显示标记图标。
void CMyMarkListContainer::HandleMarkCommandL(TInt aCommand)
{
AknSelectionService::HandleMarkableListProcessCommandL(aCommand, iListBox);
}
3.批量删除列表项
选择此菜单项则所有被标记的记录项都被删除。这里使用了一个技巧,即逆序删除被标记的列表项,这样可以保证索引数组中的各个索引值的有效性,删除后还有同步更新列表项的索引,必须调用 AknListBoxUtils::HandleItemRemovalAndPositionHightlightL()静态函数来刷新显示。代码如下:
void CMyMarkListContainer::DeleteRecordL()
{
CTextListBoxModel* model = iListBox->Model();
CDesCArray* array =
static_cast
TInt index = iListBox->CurrentItemIndex();
TBool deleted = iListBox->View()->ItemIsSelected(index);
//下面一句为获取被标记的列表项的索引数组
const CListBoxView::CSelectionIndexArray* selection = iListBox->SelectionIndexes();
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››开发者眼中的Windows Phone和Android
- ››Symbian S60 SocketConnection参数
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››Symbian乏力:2010年诺基亚悲情大事记
- ››Symbian三大升级开启2011年新战略
- ››Symbian/Android/iOS/WM安装包对比
- ››Symbian一个活动对象的测试例子
- ››Symbian ListBox控件
- ››Symbian下自动切换SDK的批处理代码
更多精彩
赞助商链接