• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            life02

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              197 隨筆 :: 3 文章 :: 37 評論 :: 0 Trackbacks
            http://www.cnblogs.com/salam/archive/2010/10/27/1862730.html

            效果如下:

             

            初始界面

            輸入信息

            “確定”以后

             

            一、API文檔說明

              1.介紹

                用于不同Activity之間的數(shù)據(jù)傳遞

              1.重要方法

                clear():清除此Bundle映射中的所有保存的數(shù)據(jù)。

                clone():克隆當(dāng)前Bundle

                containsKey(String key):返回指定key的值

                getString(String key):返回指定key的字符

                hasFileDescriptors():指示是否包含任何捆綁打包文件描述符

                isEmpty():如果這個捆綁映射為空,則返回true

                putString(String key, String value):插入一個給定key的字符串值

                readFromParcel(Parcel parcel):讀取這個parcel的內(nèi)容

                remove(String key):移除指定key的值

                writeToParcel(Parcel parcel, int flags):寫入這個parcel的內(nèi)容

            二、實(shí)例

              

            public class BundleDemo extends Activity {
             private EditText etName;
             Button btn;

             /*
              * (non-Javadoc)
              *
              * @see android.app.Activity#onCreate(android.os.Bundle)
              */
             @Override
             protected void onCreate(Bundle savedInstanceState) {
              // TODO Auto-generated method stub
              super.onCreate(savedInstanceState);

              setContentView(R.layout.bundle);

              etName = (EditText) findViewById(R.id.etname);
              btn = (Button) findViewById(R.id.btn);
              btn.setOnClickListener(new OnClickListener() {

               @Override
               public void onClick(View v) {
                String info = etName.getText().toString();
                Bundle bundle = new Bundle();

              //保存輸入的信息
                bundle.putString("name", info);
                Intent intent=new Intent(BundleDemo.this,BundleDemo1.class);
               intent.putExtras(bundle);
               finish();
               startActivity(intent);
               }
              });

             }

            }

             

            public class BundleDemo1 extends Activity {
            private TextView etName;
             /* (non-Javadoc)
              * @see android.app.Activity#onCreate(android.os.Bundle)
              */
             @Override
             protected void onCreate(Bundle savedInstanceState) {
              // TODO Auto-generated method stub
              super.onCreate(savedInstanceState);
              
              setContentView(R.layout.b1);
              
              etName=(TextView)findViewById(R.id.txtname);
              Bundle b=getIntent().getExtras();
              //獲取Bundle的信息
              String info=b.getString("name");
              etName.setText("您的姓名:"+info);
             }

            }

             

            三、與SharedPreferences的區(qū)別

              SharedPreferences是簡單的存儲持久化的設(shè)置,就像用戶每次打開應(yīng)用程序時的主頁,它只是一些簡單的鍵值對來操作。它將數(shù)據(jù)保存在一個xml文件中

              Bundle是將數(shù)據(jù)傳遞到另一個上下文中或保存或回復(fù)你自己狀態(tài)的數(shù)據(jù)存儲方式。它的數(shù)據(jù)不是持久化狀態(tài)。

            標(biāo)簽: Android2.2

            一、使用Intent

                在 Android 中,不同的 Activity 實(shí)例可能運(yùn)行在一個進(jìn)程中,也可能運(yùn)行在不同的進(jìn)程中。因此我們需要一種特別的機(jī)制幫助我們在 Activity 之間傳遞消息。Android 中通過 Intent 對象來表示一條消息,一個 Intent 對象不僅包含有這個消息的目的地,還可以包含消息的內(nèi)容,這好比一封 Email,其中不僅應(yīng)該包含收件地址,還可以包含具體的內(nèi)容。對于一個 Intent 對象,消息“目的地”是必須的,而內(nèi)容則是可選項(xiàng)。

            在上面的實(shí)例中通過 Activity. startActivity(intent)啟動另外一個 Activity 的時候,我們在 Intent 類的構(gòu)造器中指定了“收件人地址”。

            如果我們想要給“收件人”Activity 說點(diǎn)什么的話,那么可以通過下面這封“e-mail”來將我們消息傳遞出去:

             

            1. Intent intent =new Intent(CurrentActivity.this,OtherActivity.class);  
            2.   // 創(chuàng)建一個帶“收件人地址”的 email    
            3.  Bundle bundle =new Bundle();// 創(chuàng)建 email 內(nèi)容   
            4.  bundle.putBoolean("boolean_key"true);// 編寫內(nèi)容   
            5.  bundle.putString("string_key""string_value");   
            6.  intent.putExtra("key", bundle);// 封裝 email    
            7.  startActivity(intent);// 啟動新的 Activity   
             

             

            那么“收件人”該如何收信呢?在 OtherActivity類的 onCreate()或者其它任何地方使用下面的代碼就可以打開這封“e-mail”閱讀其中的信息:

             

            1. Intent intent =getIntent();// 收取 email    
            2.  Bundle bundle =intent.getBundleExtra("key");// 打開 email    
            3.  bundle.getBoolean("boolean_key");// 讀取內(nèi)容   
            4.  bundle.getString("string_key");  
             

             

            上面我們通過 bundle對象來傳遞信息,bundle維護(hù)了一個 HashMap<String, Object>對象,將我們的數(shù)據(jù)存貯在這個 HashMap 中來進(jìn)行傳遞。但是像上面這樣的代碼稍顯復(fù)雜,因?yàn)?Intent 內(nèi)部為我們準(zhǔn)備好了一個 bundle,所以我們也可以使用這種更為簡便的方法:

             

            1. Intent intent =new Intent(EX06.this,OtherActivity.class);   
            2.  intent.putExtra("boolean_key"true);   
            3.  intent.putExtra("string_key""string_value");   
            4.  startActivity(intent);  
             

             

            接收:

             

            1. Intent intent=getIntent();   
            2. intent.getBooleanExtra("boolean_key",false);   
            3. intent.getStringExtra("string_key");   
             

             

            二、使用SharedPreferences 

                SharedPreferences 使用 xml 格式為 Android 應(yīng)用提供一種永久的數(shù)據(jù)存貯方式。對于一個 Android 應(yīng)用,它存貯在文件系統(tǒng)的/data/ data/your_app_package_name/shared_prefs/目錄下,可以被處在同一個應(yīng)用中的所有 Activity 訪問。Android 提供了相關(guān)的 API 來處理這些數(shù)據(jù)而不需要程序員直接操作這些文件或者考慮數(shù)據(jù)同步問題。

             

            1. // 寫入 SharedPreferences    
            2.  SharedPreferences preferences = getSharedPreferences("name", MODE_PRIVATE);   
            3.  Editor editor = preferences.edit();   
            4.  editor.putBoolean("boolean_key"true);   
            5.  editor.putString("string_key""string_value");   
            6.  editor.commit();   
            7.           
            8.  // 讀取 SharedPreferences    
            9.  SharedPreferences preferences = getSharedPreferences("name", MODE_PRIVATE);   
            10.  preferences.getBoolean("boolean_key"false);   
            11.  preferences.getString("string_key""default_value");   
             

             

            三、其他方式

            Android 提供了包括 SharedPreferences 在內(nèi)的很多種數(shù)據(jù)存貯方式,比如 SQLite,文件等,程序員可以通過這些 API 實(shí)現(xiàn) Activity 之間的數(shù)據(jù)交換。如果必要,我們還可以使用 IPC 方式。

             

            http://blog.csdn.net/sdlgxxy/article/details/6226127
            posted on 2012-02-22 10:34 life02 閱讀(683) 評論(0)  編輯 收藏 引用 所屬分類: Android開發(fā)
            成人精品一区二区久久| 午夜天堂精品久久久久| 亚洲精品乱码久久久久久久久久久久 | 亚洲国产精品无码成人片久久| 久久亚洲精品无码观看不卡| 亚洲天堂久久精品| 99久久精品免费观看国产| 亚洲国产精品久久久久婷婷软件 | 91亚洲国产成人久久精品| 精品久久一区二区三区| 久久国产精品-久久精品| 99久久精品国产一区二区蜜芽 | 久久人人爽人人精品视频| 久久无码精品一区二区三区| 久久夜色精品国产亚洲av| 波多野结衣久久| 久久精品中文騷妇女内射| 久久亚洲高清观看| 97超级碰碰碰碰久久久久| 日日狠狠久久偷偷色综合免费| 精品久久久一二三区| 精品国产乱码久久久久久郑州公司| 国产日产久久高清欧美一区| 久久精品成人免费观看97| 久久久午夜精品| 久久精品国产亚洲精品2020| 久久se精品一区二区影院| 久久精品一区二区三区AV| 91视频国产91久久久| 久久嫩草影院免费看夜色| 日韩精品久久久肉伦网站| 国产精品亚洲美女久久久| 久久久久久精品成人免费图片| 国产一久久香蕉国产线看观看| 欧美激情精品久久久久久| 国内精品久久久久久久97牛牛 | 青青热久久国产久精品| 精品无码久久久久久尤物| 亚洲欧美一级久久精品| 中文字幕久久欲求不满| 日韩精品久久久久久免费|