日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android Bundle类 学习总结

發布時間:2025/4/14 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android Bundle类 学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android Bundle類

http://blog.csdn.net/randyjiawenjie/article/details/6651437


根據google官方的文檔(http://developer.android.com/reference/android/os/Bundle.html)


Bundle類是一個key-value對,“A mapping from String values to various Parcelable types.”


類繼承關系:


java.lang.Object
? ? ?android.os.Bundle


Bundle類是一個final類:
public final class
Bundle
extends Objectimplements Parcelable Cloneable


兩個activity之間的通訊可以通過bundle類來實現,做法就是:


(1)新建一個bundle類


[java] view plain copy
Bundle mBundle = new Bundle(); ??
(2)bundle類中加入數據(key -value的形式,另一個activity里面取數據的時候,就要用到key,找出對應的value)
[java] view plain copy
mBundle.putString("Data", "data from TestBundle"); ?


(3)新建一個intent對象,并將該bundle加入這個intent對象
[cpp] view plain copy
Intent intent = new Intent(); ? ?
intent.setClass(TestBundle.this, Target.class); ? ?
intent.putExtras(mBundle); ?
完整代碼如下:
android mainfest.xml如下:


[java] view plain copy
<?xml version="1.0" encoding="utf-8"?> ?
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ?
? ? ? package="com.tencent.test" ?
? ? ? android:versionCode="1" ?
? ? ? android:versionName="1.0"> ?
? ? <application android:icon="@drawable/icon" android:label="@string/app_name"> ?
? ? ? ? <activity android:name=".TestBundle" ?
? ? ? ? ? ? ? ? ? android:label="@string/app_name"> ?
? ? ? ? ? ? <intent-filter> ?
? ? ? ? ? ? ? ? <action android:name="android.intent.action.MAIN" /> ?
? ? ? ? ? ? ? ? <category android:name="android.intent.category.LAUNCHER" /> ?
? ? ? ? ? ? </intent-filter> ?
? ? ? ? </activity> ?
? ? <activity android:name=".Target"></activity> ?
? ? </application> ?
? ? <uses-sdk android:minSdkVersion="7" /> ?
</manifest> ??


兩個類如下:intent從TestBundle類發起,到Target類。
類1:TestBundle類:


[java] view plain copy
import android.app.Activity; ? ?
import android.content.Intent; ? ?
import android.os.Bundle; ? ?
import android.view.View; ?
import android.view.View.OnClickListener; ?
import android.widget.Button; ?
??
public class TestBundle extends Activity { ? ?
? ? ??
? ? private Button button1; ?
? ? private OnClickListener cl; ??
? ? public void onCreate(Bundle savedInstanceState) { ? ?
? ? ? ? super.onCreate(savedInstanceState); ? ?
? ? ? ? setContentView(R.layout.main); ?
? ? ? ? ??
? ? ? ? button1 = (Button) findViewById(R.id.button1); ?
? ? ? ? cl = new OnClickListener(){ ?
? ? ? ? ? ? @Override ?
? ? ? ? ? ? public void onClick(View arg0) { ?
? ? ? ? ? ? ? ? // TODO Auto-generated method stub ?
? ? ? ? ? ? ? ? Intent intent = new Intent(); ? ?
? ? ? ? ? ? ? ? intent.setClass(TestBundle.this, Target.class); ? ?
? ? ? ? ? ? ? ? Bundle mBundle = new Bundle(); ? ?
? ? ? ? ? ? ? ? mBundle.putString("Data", "data from TestBundle");//壓入數據 ? ?
? ? ? ? ? ? ? ? intent.putExtras(mBundle); ? ?
? ? ? ? ? ? ? ? startActivity(intent); ?
? ? ? ? ? ? } ?
? ? ? ? }; ?
? ? ? ? button1.setOnClickListener(cl); ?
? ? } ?
} ? ?


類2: Target
[java] view plain copy
import android.app.Activity; ? ?
import android.os.Bundle; ? ?
??
public class Target extends Activity{ ? ?
??
? ? public void onCreate(Bundle savedInstanceState) { ? ?
? ? ? ? ??
? ? ? ? super.onCreate(savedInstanceState); ? ?
? ? ? ? setContentView(R.layout.target); ? ?
? ? ? ? <span style="color:#ff6600;">Bundle bundle = getIntent().getExtras(); ? </span> //得到傳過來的bundle ?
? ? ? ? String data = bundle.getString("Data");//讀出數據 ? ?
? ? ? ? setTitle(data); ? ?
??
? ? } ? ?
} ? ?


布局文件:
main.xml


[java] view plain copy
<?xml version="1.0" encoding="utf-8"?> ?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ?
? ? android:orientation="vertical" ?
? ? android:layout_width="fill_parent" ?
? ? android:layout_height="fill_parent" ?
? ? > ?
<TextView ? ?
? ? android:layout_width="fill_parent" ??
? ? android:layout_height="wrap_content" ??
? ? android:text="@string/hello" ?
? ? /> ?
<Button ? ?
? ? android:layout_width="fill_parent" ??
? ? android:layout_height="wrap_content" ??
? ? android:text="@string/button" ?
? ? android:id = "@+id/button1" ?
? ? /> ??
</LinearLayout> ?


target.xml
[java] view plain copy
<?xml version="1.0" encoding="utf-8"?> ?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ?
? ? android:orientation="vertical" ?
? ? android:layout_width="fill_parent" ?
? ? android:layout_height="fill_parent" ?
? ? > ?
<TextView ? ?
? ? android:layout_width="fill_parent" ??
? ? android:layout_height="wrap_content" ??
? ? android:text="@string/target" ?
? ? /> ?
</LinearLayout> ?


String.xml


[java] view plain copy
<?xml version="1.0" encoding="utf-8"?> ?
<resources> ?
? ? <string name="hello">Hello World, TestBundle!</string> ?
? ? <string name="app_name">測試Bundle用法</string> ?
? ? <string name="button">點擊跳轉</string> ?
? ? <string name="target">來到target activity</string> ?
</resources> ?


結果:


跳轉結果:
========

Android中Bundle的使用

http://blog.sina.com.cn/s/blog_a364999b01017i2z.html


? ? SDK里是這樣描述:A mapping from String values to various Parcelable types。它幫助我將數據打包傳入intent里面,為使用這些數據提供了便利。


java代碼:


protected void onListItemClick (ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);


//獲得選中項的HashMap對象?
HashMap map=(HashMap)lv.getItemAtPosition(position);
String Type=map.get("Type");?
Intent i=new Intent(this,title.class);
Bundle mBundle=new Bundle();
mBundle.putString("type", Type);
i.putExtras(mBundle);
startActivity(i);
}


復制代碼


? ? ? ?1、實例化Bundle 一個對象,用putString(標記,數據)來將數據導入到Bundle對象中;  2、然后將Bundle對象導入到Intent對象中;
  3、Intent啟動另一個activity。


  從intent中讀出需要的數據:


java代碼:
bundle = getIntent().getExtras();?
if(bundle!=null)
Type=bundle.getString("type");
if(Type!=null)?
//從數據庫依據所選類型讀出 文章的Title,保存在cur中?
cur=myDBadapter.getTitle(new String[]{Type});
復制代碼


? ? ? ?4、Bundle對象可以從activity.getIntent().getExtras()中返回。 可見,啟動當前activity 的Intent對象是由getIntent()來找到的。
  5、通過Bundle的getString()方法,就可以讀出所要的數據。


  這就是Bundle的經典用法,包裹數據放入Intent中,目的在于傳輸數據。
========

Android中的Bundle的具體使用

http://txlong-onz.iteye.com/blog/934960
?
一、API文檔說明
  1.介紹
    用于不同Activity之間的數據傳遞
  1.重要方法
    clear():清除此Bundle映射中的所有保存的數據。
    clone():克隆當前Bundle
    containsKey(String key):返回指定key的值
    getString(String key):返回指定key的字符
    hasFileDescriptors():指示是否包含任何捆綁打包文件描述符
    isEmpty():如果這個捆綁映射為空,則返回true
    putString(String key, String value):插入一個給定key的字符串值
    readFromParcel(Parcel parcel):讀取這個parcel的內容
    remove(String key):移除指定key的值
    writeToParcel(Parcel parcel, int flags):寫入這個parcel的內容
二、實例
Java代碼 ?收藏代碼
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); ?
? ? ? ? ? ? } ?
? ? ? ? }); ?
? ? } ?
} ?
?
?
Java代碼 ?收藏代碼
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的區別
  SharedPreferences是簡單的存儲持久化的設置,就像用戶每次打開應用程序時的主頁,它只是一些簡單的鍵值對來操作。它將數據保存在一個xml文件中
  Bundle是將數據傳遞到另一個上下文中或保存或回復你自己狀態的數據存儲方式。它的數據不是持久化狀態。
========

總結

以上是生活随笔為你收集整理的Android Bundle类 学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av字幕在线 | 亚洲av无码乱码国产精品fc2 | jzz在线观看 | 成年人在线免费看 | 国产亚洲精品成人a | 亚洲精品久久久久国产 | 欧美日韩精品久久久免费观看 | 欧美国产高潮xxxx1819 | 色多多在线视频 | 午夜在线小视频 | 男人和女人做爽爽视频 | 亚洲精品短视频 | 诱惑の诱惑筱田优在线播放 | 国产中文字幕视频 | 伦理片波多野结衣 | 人人爽人人草 | 免费在线观看av网址 | 黄色aa大片| 五月天一区二区 | 麻豆系列在线观看 | 婷婷五月精品中文字幕 | 黑料网在线观看 | 亚洲av女人18毛片水真多 | www.黄色小说.com | 久久女同互慰一区二区三区 | 午夜精品999 | 欧洲精品视频在线 | 特级黄色大片 | 伊人三区 | 91亚洲国产成人久久精品麻豆 | 久久久久久久久福利 | 中文字幕电影一区 | 麻豆系列在线观看 | av在线观| 日韩 国产 一区 | 黄色在线资源 | 91精品国产一区二区三区蜜臀 | 91九色蝌蚪| 国产成人免费在线 | 噼里啪啦国语高清 | 日本福利一区 | 99久久久无码国产精品性色戒 | 另类天堂av | 国产黄页 | 亚洲第一香蕉网 | 精品一区二区视频在线观看 | 222aaa| 五月天激情综合网 | 99精品视频一区二区三区 | 欧美日韩人妻精品一区在线 | 日韩成人一区二区视频 | 亚洲国产精品视频在线 | 天天操天天操天天操 | 亚洲一区二区三区久久久 | 成人动漫在线观看视频 | 日本国产在线观看 | 成人国产精品入口免费视频 | 美女在线观看www | 91精品视频免费看 | 麻豆黄色网 | 欧美成人午夜77777 | 成人免费视频网站在线观看 | 蜜臀久久99精品久久久久久宅男 | 久草网视频 | 亚洲欧美视频在线播放 | 成人在线免费视频播放 | 日韩中文字幕第一页 | 欧美91av | 亚洲成人福利 | 久久精工是国产品牌吗 | xxxx国产精品 | 亚洲精品一区二区在线观看 | 亚洲骚片 | 亚洲精品乱码久久久久 | 欧美成年人在线视频 | 国产又色又爽无遮挡免费动态图 | 福利视频在线免费观看 | 午夜影院在线观看 | 精品在线视频一区 | 日韩av一区二区三区在线观看 | 中出视频在线观看 | 精品国产一区二区在线观看 | 日本中文在线 | 黄色理伦片 | 亚洲av不卡一区二区 | 中文字幕精品一区二区精 | 久久久久久久久久影视 | 五月天激情在线 | 99黄色| 三级艳丽杨钰莹三级 | 涩涩网站免费 | 在线看黄的网站 | 欧美成人免费大片 | 欧美精品videos另类 | 91插插影库| 欧美激情 亚洲 | 成人激情电影在线观看 | 亚洲人人插 | 三级黄色在线 |