zoukankan      html  css  js  c++  java
  • 揭秘uc浏览器四

    请问大家用过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对。

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

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

  • 相关阅读:
    第3章 机器学习的典型应用 3-2 典型应用-聚类
    第3章 机器学习的典型应用 3-1 典型应用-关联规则
    6-13 Hog特征1
    6-12 SVM小结
    Linux中常见的环境变量笔记
    Linux中常见的环境变量笔记
    Linux中shell变量基础概念笔记
    Linux中shell变量基础概念笔记
    Linux常用内建命令笔记
    Linux常用内建命令笔记
  • 原文地址:https://www.cnblogs.com/manuosex/p/3617658.html
Copyright © 2011-2022 走看看