揭秘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对。

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

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


目录
相关文章
|
1月前
|
Web App开发 移动开发 小程序
mPaaS常见问题之集成的uc浏览器so体积过大如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
18 0
|
Web App开发 移动开发 搜索推荐
Spring MVC+Mybatis+cms实现UC浏览器文章相关功能
java、spring cloud、spring boot 、cms、
2183 0
|
Web App开发 搜索推荐 大数据
|
Web App开发
云技术让UC浏览器TV版 赋予懒人超能力
本文讲的是云技术让UC浏览器TV版 赋予懒人超能力,
1280 0

热门文章

最新文章