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

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

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值