Kardos's Blog

Happy coding

Thursday,April 21,2011-Eclipse_android_ApiDemo_学习2

Kardos posted @ 2011年4月20日 15:05 in 未分类 , 774 阅读

6.App/Activity/Hello World

Demonstrates start normal an activity

7.App/Activity/Persistent State

Demonstrates preferences save,演示如何使用persistent preferences来保留切屏时原Activity的一些值,方便在切回时复原.

两点关键一为生命周期,OnResume()时读取数据,OnPause()时建立数据

        二为建立数据:SharedPreferences.Editor editor = getPreferences(0).edit();

                      editor.putString("text", mSaved.getText().toString());
                      editor.putInt("selection-start", mSaved.getSelectionStart());
                      editor.putInt("selection-end", mSaved.getSelectionEnd());
                      editor.commit();
            读取数据:SharedPreferences prefs = getPreferences(0); 
                      String restoredText = prefs.getString("text", null);
                      if (restoredText != null) {
                      mSaved.setText(restoredText, TextView.BufferType.EDITABLE);
 
                      int selectionStart = prefs.getInt("selection-start", -1);
                      int selectionEnd = prefs.getInt("selection-end", -1);
                      if (selectionStart != -1 && selectionEnd != -1) {
                          mSaved.setSelection(selectionStart, selectionEnd);
                      }
8.App/Activity/QuickContactsDemo
演示一个快速启动电话拨号的Activity.可以调取联系人资料然后直接拨号(看半天没看懂)
9.App/Activity/Receive Result
演示如何让第二个Activity向第一个activity返回时返回值.
这个例子由两个Activity组成:ReceiveResult运行pick activity且接收结果;SendResult可以让用户选择和发送回调的结果.实现这个功能涉及setResult()发送结果   onActivityResult()接收结果

按BACK键从一个Activity退出来的,一按BACK,android就会自动调用Activity的finish()方法,然后设置resultCode为RESULT_CANCELED,也就不会返回任何数据了 .解决方法就是在Activity里面捕获按BACK的事件,捕获到之后先setResult,然后自己来调用finish,就搞定了……把BACK事件直接自己给吞了:如果在startActivityForResult起来的Activity里面设置setResult,结果并不会马上返回给parent的Activity,只有当前Activity被finish,结果才会被发送给parent的onActivityResult去处理!

startActivityForResult(intent, requestCode)两个参数 一个是意图对象,另一个是请求代码。

这里的requestCode就是前面启动新Activity时的带过去的requestCode,而resultCode则关联上了setResult中的resultCode,data是参数,extras也是一个很重要的东西,后面再研究一下它的作用。

 

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter