有一个需求是要在待机界面按enter键,进入一个上网的列表,用户可以进行选择网址进行上网。一共有5个网址。
2011-05-09 15:57
465 查看
有一个需求是要在待机界面按enter键,进入一个上网的列表,用户可以进行选择网址进行上网。一共有5个网址。
也许会有人这么做的:
先定义5个MENUID,然后再分别定义5个高亮的函数。这么做,我觉得效率实在是太低了一点,想想如果有30个以上的网址供用户选择,那也这样搞,岂不是太费事了吗?
我是这么做的,定义一个指针数组,里面放入5个客户要求的网址,这样就省事多了,只要一个index来确定高亮的是哪个网址就可以了。
啥也不说了,贴代码吧
#if defined(__MMI_MY_WAP_LINK__)
#define MY_WAP_LINK_ITME_COUNT 5
U8 g_my_wap_link_index = 0;
extern void wap_goto_url_for_my_link(char *linkurl);
void mmi_my_wap_link_highlight_index(S32 Index)
{
g_my_wap_link_index = Index;
}
void mmi_my_wap_link_launch(void)
{
//此指针数组要和mmi_entry_my_wap_link 中的数组一致.
char *linkurlarray[MY_WAP_LINK_ITME_COUNT] = {"http://www.baidu.com","http://www.163.com","http://www.255.com","http://www.205.com","http://www.225.com"};
wap_goto_url_for_my_link(linkurlarray[g_my_wap_link_index]);
}
void mmi_entry_my_wap_link(void)
{
WCHAR *linkurlarray[MY_WAP_LINK_ITME_COUNT] = {L"http://www.baidu.com",L"http://www.163.com",L"http://www.255.com",L"http://www.205.com",L"http://www.225.com"};
U8 *guiBuffer = NULL;
EntryNewScreen(WAP_LINK_SHORTCUT_SCREENID,NULL,mmi_entry_my_wap_link,NULL);
guiBuffer = GetCurrGuiBuffer(MY_WAP_LINK_SCREENID);
ShowCategory53Screen(NULL,
NULL,
STR_GLOBAL_OK,
IMG_GLOBAL_OK,
STR_GLOBAL_BACK,
IMG_GLOBAL_BACK,
MY_WAP_LINK_ITME_COUNT,
(U8 **) linkurlarray,
(PU16) gIndexIconsImageList,
NULL,
0,
g_my_wap_link_index,
guiBuffer);
RegisterHighlightHandler(mmi_my_wap_link_highlight_index);
SetLeftSoftkeyFunction( mmi_my_wap_link_launch, KEY_EVENT_UP );
SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
}
#endif/*__MMI_MY_WAP_LINK__*/
L"http://www.baidu.com"这个是将asc码转换成unicode编码,所以定义指针数组的时候要用WCHAR ,否则是编译不过的。用WCHAR定义,就可以不用mmi_asc_to_ucs2进行转换了,省去了一些复杂的操作,仅仅一个L就可以解决字符编码的复杂转换了。
也许会有人这么做的:
先定义5个MENUID,然后再分别定义5个高亮的函数。这么做,我觉得效率实在是太低了一点,想想如果有30个以上的网址供用户选择,那也这样搞,岂不是太费事了吗?
我是这么做的,定义一个指针数组,里面放入5个客户要求的网址,这样就省事多了,只要一个index来确定高亮的是哪个网址就可以了。
啥也不说了,贴代码吧
#if defined(__MMI_MY_WAP_LINK__)
#define MY_WAP_LINK_ITME_COUNT 5
U8 g_my_wap_link_index = 0;
extern void wap_goto_url_for_my_link(char *linkurl);
void mmi_my_wap_link_highlight_index(S32 Index)
{
g_my_wap_link_index = Index;
}
void mmi_my_wap_link_launch(void)
{
//此指针数组要和mmi_entry_my_wap_link 中的数组一致.
char *linkurlarray[MY_WAP_LINK_ITME_COUNT] = {"http://www.baidu.com","http://www.163.com","http://www.255.com","http://www.205.com","http://www.225.com"};
wap_goto_url_for_my_link(linkurlarray[g_my_wap_link_index]);
}
void mmi_entry_my_wap_link(void)
{
WCHAR *linkurlarray[MY_WAP_LINK_ITME_COUNT] = {L"http://www.baidu.com",L"http://www.163.com",L"http://www.255.com",L"http://www.205.com",L"http://www.225.com"};
U8 *guiBuffer = NULL;
EntryNewScreen(WAP_LINK_SHORTCUT_SCREENID,NULL,mmi_entry_my_wap_link,NULL);
guiBuffer = GetCurrGuiBuffer(MY_WAP_LINK_SCREENID);
ShowCategory53Screen(NULL,
NULL,
STR_GLOBAL_OK,
IMG_GLOBAL_OK,
STR_GLOBAL_BACK,
IMG_GLOBAL_BACK,
MY_WAP_LINK_ITME_COUNT,
(U8 **) linkurlarray,
(PU16) gIndexIconsImageList,
NULL,
0,
g_my_wap_link_index,
guiBuffer);
RegisterHighlightHandler(mmi_my_wap_link_highlight_index);
SetLeftSoftkeyFunction( mmi_my_wap_link_launch, KEY_EVENT_UP );
SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
}
#endif/*__MMI_MY_WAP_LINK__*/
L"http://www.baidu.com"这个是将asc码转换成unicode编码,所以定义指针数组的时候要用WCHAR ,否则是编译不过的。用WCHAR定义,就可以不用mmi_asc_to_ucs2进行转换了,省去了一些复杂的操作,仅仅一个L就可以解决字符编码的复杂转换了。
相关文章推荐
- PyCharm中按住Alt键,可以选择一个指定列表,然后对这个数列进行操作,比如删除,增加等等
- Android 隐式意图 让用户选择一个浏览器访问网址
- 编写一个单文档界面的应用程序,程序启动后在用户区显示一个圆,用鼠标可以拖动这个圆。
- 在窗体中有两个多选列表,用户可以从左侧列表中选择任意项,添加到右侧列表中。反之亦然。
- 已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离可以不超过k,并且k相对于数组来说比较小。请选择一个合适的排序算法针对这个数据进行排序。 给定一个int数组A,同时给定
- android从摄像头或者图库选择图片,并进行裁剪,可以用来用户头像处理
- android 对一个合并后的联系人选择编辑,手机屏幕会缓慢变暗后再进入编辑界面的问题
- 异或加密法 在对文本进行简单加密的时候,可以选择用一个n位的二进制数,对原文进行异或运算。 解密的方法就是再执行一次同样的操作。
- 用户可以在下拉列表框中选择头像来进行头像更改
- Js 日期选择,可以的一个页面中重复使用本JS日历,兼容IE及火狐等主流浏览器,而且界面简洁、美观,操作体验也不错。
- android 7.0 切换语言界面切换语言后点击“添加语言”的加号进入语言选择列表不做任何操作返回返现actionbar标题异常
- 我创建了一个托盘图标,可以正常使用,点击右键打开菜单。问题是如果点击右键后不选择其中一个菜单项进行操作的话,它就总不消失。
- 书写一个程序,可以根据用户的选择,分别运算圆形、长方形、三角形的面积
- android 对一个合并后的联系人选择编辑,手机屏幕会缓慢变暗后再进入编辑界面的问题
- iOS提醒用户进入设置界面进行重新授权通知定位等功能
- 用户进入一个工程的PC端和手机端选择的js实现
- 灰度或者彩色图像的直方图均衡化+Opencv(可以选择其中的某一个区域进行均衡)
- android中如何实现进入一个界面不做任何动作过10秒钟(有操作从新计时)自动跳转到待机activity,点击待机界面回到原来的界面
- C语言实现一个Window控制台带彩色,且可以用方向键选择并确认的菜单式列表(一)
- 制作一个页面网格,可以用来把自己所做的UI和需求图片进行位置,像素比较