请问大家用过uc浏览器,他收藏一个网页是怎么操作的?

是不是这样,按菜单键——弹出添加网页,收藏网页等等的菜单操作,这个菜单操作很人性化了,并且在前面的篇幅已经说过了,这里不做太多的赘述了。

我这里只说一说添加书签这个页面怎么的实现了。

这个添加书签的页面布局文件如下所示:

由布局文件,我们可以推断出,一定是你点击了添加书签的以后,再将其网址名称,和网址保存到文本框,让用户得以编辑,进一步提升用户体验,是这样的吗?

丑媳妇总要见公婆,是亮代码,解开谜底的时候了,源代码如下:

/**
* Add / Edit bookmark activity.
*/
public class EditBookmarkActivity extends Activity {
/**
* mTitleEditText 名字文本框
* mUrlEditText URL文本框
* mOkButton 确定按钮
* mCancelButton 取消按钮
*/
private EditText mTitleEditText;
private EditText mUrlEditText; private Button mOkButton;
private Button mCancelButton; private long mRowId = -1; /**
* 数据初始化的过程
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); Window w = getWindow();
w.requestFeature(Window.FEATURE_LEFT_ICON); setContentView(R.layout.edit_bookmark_activity); w.setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, android.R.drawable.ic_input_add); mTitleEditText = (EditText) findViewById(R.id.EditBookmarkActivity_TitleValue);
mUrlEditText = (EditText) findViewById(R.id.EditBookmarkActivity_UrlValue); mOkButton = (Button) findViewById(R.id.EditBookmarkActivity_BtnOk);
mCancelButton = (Button) findViewById(R.id.EditBookmarkActivity_BtnCancel); mOkButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setAsBookmark();
setResult(RESULT_OK);
finish();
}
}); mCancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setResult(RESULT_CANCELED);
finish();
}
}); Bundle extras = getIntent().getExtras();
if (extras != null) { String title = extras.getString(Constants.EXTRA_ID_BOOKMARK_TITLE);
if ((title != null) &&
(title.length() > 0)) {
mTitleEditText.setText(title);
} String url = extras.getString(Constants.EXTRA_ID_BOOKMARK_URL);
if ((url != null) &&
(url.length() > 0)) {
mUrlEditText.setText(url);
} else {
mUrlEditText.setHint("http://");
} mRowId = extras.getLong(Constants.EXTRA_ID_BOOKMARK_ID); } if (mRowId == -1) {
setTitle(R.string.EditBookmarkActivity_TitleAdd);
}
} /**
* Set the current title and url values as a bookmark, e.g. adding a record if necessary or set only the bookmark flag.
*/
private void setAsBookmark() {
BookmarksProviderWrapper.setAsBookmark(getContentResolver(), mRowId, mTitleEditText.getText().toString(), mUrlEditText.getText().toString(), true);
} }

通过这个控制的java文件我们可以清楚的分析出来:

①照例,是一些控件常量的声明。

②找oncreate这个数据的初始化的方法中了,对相应的数据进行初始化,赋予相应点击事件这些都是惯例性的动作,简称惯性。主要,我们知道这个界面,是从其他界面进入,数据一定是带过来的,那怎么带过来的,是通过bundle。android中的bundle是activity中传递数据的桥梁。打个比喻,Intent就是连接Activity(或其他组件,如service等等)的公路,那么Bundle就是跑在这条道路上的运输车,需要传输的数据就封装在Bundle之中。从实现上来看Bundle类是一个key-value对。

③当你点击保存按钮以后,你就把他保存到你建立一个保存数据的数据库,当然,这端数据是你编辑以后的数据了,否则就关闭此对话框。

怎么样,这个代码的实现是不是同我们猜想一模一样,华罗庚说过你倘若猜想与书写的差不多,请跳过把。大家是否猜想到代码的实现,那请你跳过这篇聱牙诘曲的文章。

揭秘uc浏览器四的更多相关文章

  1. 揭秘uc浏览器一

    首先,看一下项目完成后的,最终效果是这样的: 一.主界面 二,书签界面 三.主界面 四.操作对话框界面 这几个界面你是否看到了uc浏览器的影子了,其实我说你也可以了,在接下来篇幅中,我将手把手叫大家完 ...

  2. 揭秘uc浏览器二

    这节,四个议题: ①一个网页显示在webview控件中 ②如何正常隐藏显示标题栏. ③如何用runnable来隐藏标题栏,这样子就更加的专业化. ④上节我们说道了QuickActionGrid,看他长 ...

  3. 揭秘uc浏览器三

    这节我们主要讨论收藏与历史记录页面的边边角角. 首先,看看他的最终的效果图了: 照例了,我们先看看他的布局文件: <!-- tab布局文件 --> <TabHost xmlns:an ...

  4. UC浏览器插件开发

    pip install UC浏览器插件是个什么玩意? 如图所看到的,便是UC的插件面板. UC通过开放浏览器插件api, 使开发人员可以进行插件的开发. 插件种类: 1 : extension. 就是 ...

  5. 让你在PC上调试Web App,UC浏览器发布开发者版

    目前,在手机上使用浏览器访问网页,无法便捷地进行网页语言调试.手机屏幕相对较小且操作不便,直接在手机上进行网页数据调试不太现实. 因此,UC使用技术将手机网页调试信息分离,实现一种能在大屏幕.高配置P ...

  6. 解决UC浏览器或微信浏览器上flex兼容问题

    在UC浏览器上使用display:flex;时会不起作用,要加上兼容性写法,如下 display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */ disp ...

  7. UC浏览器 分享到朋友圈和微信好友 分类: JavaScript 2015-04-28 14:45 615人阅读 评论(1) 收藏

    用手机UC浏览器访问新浪微博,会注意到有这样的两个分享按钮: 在手机端浏览器里,点击分享按钮,就可以启动微信客户端并分享到微信.研究了下其源代码,存在这样的一个js:http://mjs.sinaim ...

  8. 用手机自带uc浏览器查看静态页面,css样式不显示

    问题描述: 这个问题是一个同事在写手机页面用UC浏览器测试以后遇到的,其他浏览器静态页面显示正常,唯独UC浏览器不显示页面样式. 我测试过代码是没有问题的,因为临时没有找到安卓手机,就猜想PC端的应该 ...

  9. 苹果浏览器和uc浏览器在移动端的坑(日常积累,随时更新)

    先mark 1 .  移动端uc浏览器不兼容css3 calc() 2 .  ie8下a标签没有内容给宽高也不能触发点击跳转 3 . safari输入框加上readOnly="ture&qu ...

随机推荐

  1. hdu 1754 I Hate It(树状数组区间求最值)2007省赛集训队练习赛(6)_linle专场

    题意: 输入一行数字,查询第i个数到第j个数之间的最大值.可以修改其中的某个数的值. 输入: 包含多组输入数据. 每组输入首行两个整数n,m.表示共有n个数,m次操作. 接下来一行包含n个整数. 接下 ...

  2. gdb 调试及优化

    调试程序时,在gdb内p var,会提示 No symbol "var" in current context. 即使没有使用任何编译优化选项,仍然不能查看,可能是这些变量被优化到 ...

  3. STL中map的遍历

    map作为STL中的映射容器非常好用,我们来说一下map的遍历. map.first为key值,map.second为value值,key不可修改,value可修改. 定义一个迭代指针iter,使其指 ...

  4. Springboot 线程池配置

    最近的项目里要手动维护线程池,然后看到一起开发的小伙伴直接用Java了,我坚信Springboot不可能没这功能,于是查了些资料,果然有,这里给一下. 首先我们都知道@Async标签能让方法异步执行, ...

  5. Windows和linux下clock函数

    windows:  Calculates the wall-clock time used by the calling process. return:The elapsed wall-clock ...

  6. Windows平台开发Mapreduce程序远程调用运行在Hadoop集群—Yarn调度引擎异常

    共享原因:虽然用一篇博文写问题感觉有点奢侈,但是搜索百度,相关文章太少了,苦苦探寻日志才找到解决方案. 遇到问题:在windows平台上开发的mapreduce程序,运行迟迟没有结果. Mapredu ...

  7. nexus-maven- repository-index.zip手动下载与设置

    问题描述: 在启动eclipse的时候,在maven控制台经常会看到更新nexus-maven-repository-index.zip,用 eclipse更新速度会很慢,甚至有不能完成下载的情况:  ...

  8. js 弹窗广告24小时显示一次

    弹窗24小时显示一次 https://www.w3cschool.cn/javascript/js-cookies.html 我们需要借助cookie来实现这个功能 function setcooki ...

  9. MikroTik RouterOS安装后初始化配置(PPPOE拨号上网)

    1.修改登入密码 路由器默认登入账号为admin,密码为空,强烈建议修改登入密码保证安全: 2.修改接口名称 选择Interface,切换到Ethernet标签,找到状态是R(run)的两个端口. 给 ...

  10. http://www.liangxiansen.cn/2017/04/06/consul/

    Consul 使用手册 | 一个梦 http://www.liangxiansen.cn/2017/04/06/consul/ 基于Consul的分布式锁实现 https://mp.weixin.qq ...