日韩性视频-久久久蜜桃-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类 学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 草草影院最新地址 | 免费久草视频 | 中文字幕一区二区在线视频 | 日韩高清国产一区在线 | 亚洲伦理在线观看 | chinese麻豆gay勾外卖 | 久久久福利视频 | 午夜寂寞视频 | 黄色一级带 | 天天射天天干天天舔 | 久草97| 日本亲近相奷中文字幕 | 成人精品影院 | 日本一级网站 | 亚洲一区久久 | 日韩三级黄 | 毛片一二三区 | 亚洲国产精品成人综合 | 亚洲图片 欧美 | 麻豆av免费在线观看 | 亚洲欧美伦理 | 日本一二三区在线 | 亚洲精品不卡 | 337p亚洲欧洲色噜噜噜 | a久久久久 | 日韩www| 亚洲精品视频网址 | 国产精品传媒 | 女生扒开尿口 | 日韩人妻精品一区二区 | 国产小视频91 | 9999视频| 亚洲黄色片在线观看 | 91精品啪| 91在线无精精品入口 | 日本一区二区视频在线播放 | 国模私拍视频在线 | 国模视频一区二区 | 亚洲欧美校园春色 | 日韩和欧美一区二区 | 96福利视频 | www精品视频| 免费在线国产精品 | 国产午夜福利100集发布 | 欧美蜜臀| 美女娇喘 | 欧美片免费网站 | 婷婷午夜激情 | 日韩免费视频一区二区视频在线观看 | 五月婷婷激情四射 | 日本男女激情视频 | 丝袜 亚洲 另类 欧美 重口 | 一级做a爱片性色毛片 | 日本久久爱 | 亚洲黄色在线看 | 嫩草国产| 亚洲黄页网站 | 久久国产精品无码一区二区 | 初高中福利视频网站 | 97公开视频 | 美女张开腿流出白浆 | 亚洲av最新在线网址 | 水果派解说av | 国产做受入口竹菊 | 九色一区 | 小镇姑娘国语版在线观看免费 | 国产一级视频在线播放 | 国产熟妇一区二区三区四区 | 羞羞的视频在线观看 | 无码精品黑人一区二区三区 | 人妖天堂狠狠ts人妖天堂狠狠 | 爽妇网av | 久久久久69| 国产一级一片免费播放放a 丁香六月色 | 国产乱人乱偷精品视频a人人澡 | 成人在线影片 | 欧美日韩亚洲另类 | 中文字幕乱码在线人视频 | 国产精品久久午夜夜伦鲁鲁 | 在线艹| 日日天天干| 狠狠干快播| 亚洲人成77777 | 草草影院国产第一页 | 成人影视免费 | 中文字幕啪啪 | 尤物视频在线观看国产 | 98色 | 天堂在线8 | 男男gay羞辱feet贱奴vk | a级黄色录像 | 俄罗斯一级片 | 中文字幕高清一区 | 亚洲春色另类 | 国产在线精品成人欧美 | 麻豆影视国产在线观看 | 四虎午夜 | 国产精品久久久久久久久毛片 | 久草欧美|