ITÔÚÏß½ÌÓýƽ̨¡ª¡ª¡ªÂó×ÓѧԺ£ºhttp://www.maiziedu.com
30.
31. 33.
38. 39. android:background=\40. 41. android:layout_height=\ÀûÓÃsetDataPosition¶ÁÈ¡¶à¸öÖµ\ 42. ¸´ÖÆ´úÂë 2¡¢ÅäÖÃÎļþÈçÏ£º 1. 2. 3. 4. 5. 6. 7. 8. 9. package=\ android:versionCode=\ android:versionName=\ xmlns:android=\ android:label=\ android:name=\ 10. android:name=\ 11. ITÔÚÏß½ÌÓýƽ̨¡ª¡ª¡ªÂó×ÓѧԺ£ºhttp://www.maiziedu.com 12. 13. 3¡¢³ÌÐòÖ÷ÎļþÈçÏ£º 1. 2. 3. 4. 5. 6. 7. 8. 9. private static String TAG = \ // Button ID private static int[] btIds = new int[] { R.id.btWriteByte, R.id.btReadDouble, R.id.btWriteString, R.id.btReadByte, R.id.btReadInt, R.id.btReadDouble, R.id.btReadString, R.id.btSameType }; // ÿÖÖÀàÐ͵ĵ±Ç°Öµ Activity implements OnClickListener { R.id.btWriteInt, 10. private byte cur_byte = 1; // ÿ´Î×ÜдÈë false 11. private int cur_int = 10; // дÈëÖµ cur_int ++ ; 12. private double cur_float = 100.0d; // дÈëÖµ cur_float++ ; 13. private String cur_str = \дÈëÖµ \->\ 14. 15. private Parcel parcel = null; 16. 17. @Override 18. public void onCreate(Bundle savedInstanceState) { 19. super.onCreate(savedInstanceState); 20. setContentView(R.layout.main); 21. for (int i = 0; i < btIds.length; i++) { 22. Button bt = (Button) findViewById(btIds[i]); 23. bt.setOnClickListener(this); 24. } 25. parcel = Parcel.obtain(); // »ñµÃÒ»¸öParcel¶ÔÏó £¬Ï൱ÓÚnewÒ»¸ö£¬³õʼ´óСΪ0 26. Log.i(TAG, \27. } 28. 29. @Override ITÔÚÏß½ÌÓýƽ̨¡ª¡ª¡ªÂó×ÓѧԺ£ºhttp://www.maiziedu.com 30. public void onClick(View view) { 31. // TODO Auto-generated method stub 32. int viewviewId = view.getId(); 33. switch (viewId) { 34. case R.id.btWriteByte: 35. parcel.setDataPosition(0); 36. parcel.writeByte(cur_byte); 37. Log.i(TAG, \38. break; 39. case R.id.btWriteInt: 40. parcel.writeInt(cur_int); 41. Log.i(TAG, \42. break; 43. case R.id.btWriteDouble: 44. parcel.writeDouble(cur_float); 45. Log.i(TAG, \46. break; 47. case R.id.btWriteString: 48. parcel.writeString(cur_str); 49. Log.i(TAG, \50. break; 51. case R.id.btReadByte: 52. byte b = parcel.readByte(); 53. Log.i(TAG, \54. + \55. break; 56. case R.id.btReadInt: 57. int i = parcel.readInt(); 58. Log.i(TAG, \59. break; 60. case R.id.btReadDouble: 61. float f = parcel.readFloat(); 62. readSameType(); 63. Log.i(TAG, \64. break; 65. case R.id.btReadString: 66. parcel.setDataPosition(0); 67. String str = parcel.readString(); ITÔÚÏß½ÌÓýƽ̨¡ª¡ª¡ªÂó×ÓѧԺ£ºhttp://www.maiziedu.com 68. Log.i(TAG, \getParcelInfo()); 69. break; 70. case R.id.btSameType: 71. readSameType(); 72. break; 73. default: 74. break; 75. } 76. } 77. 78. private String getParcelInfo() {// µÃµ½parcelµÄÐÅÏ¢ 79. return \80. + parcel.dataCapacity() + \81. + parcel.dataPosition(); 82. } 83. 84. /** 85. * ǰÌáÌõ¼þ£¬Parcel´æÔÚ¶à¸öÀàÐÍÏàͬµÄ¶ÔÏ󣬱¾Àý×ÓÒÔ10¸öfloat¶ÔÏó˵Ã÷£º 86. */ 87. public void readSameType() { 88. 89. for (int i = 0; i < 10; i++) { 90. parcel.writeDouble(i); 91. Log.i(TAG, \92. } 93. //·½·¨Ò» £¬ÏÔʾÉèÖÃÆ«ÒÆÁ¿ 94. int i = 0; 95. int datasize = parcel.dataSize(); 96. while (i < datasize) { 97. parcel.setDataPosition(i); 98. double fvalue = parcel.readDouble(); 99. Log.i(TAG, \getParcelInfo()); 100. i += 8; // doubleÕ¼ÓÃ×Ö½ÚΪ 8byte 101. } ITÔÚÏß½ÌÓýƽ̨¡ª¡ª¡ªÂó×ÓѧԺ£ºhttp://www.maiziedu.com 102. // ·½·¨¶þ£¬ÓÉÓÚ¶ÔÏóµÄÀàÐÍÒ»Ö£¬ÎÒÃÇ¿ÉÒÔÖ±½ÓÀûÓÃreadXXX()¶Áȡֵ»á²úÉúÆ«ÒÆÁ¿ 103. // parcel.setDataPosition(0) ; // 104. // while(parcel.dataPosition() 106. // Log.i(TAG, \getParcelInfo()); 107. // } 108. } ÓÉÓÚȡֵʱ£¬¿ÉÄÜ´æÔÚÀàÐ͵Äת»»£¬Òò´Ëµã»÷°´Å¥Ê±£¬¿ÉÄܲ»»á²úÉúÔ¤ÆÚ½á¹û¡£Òò´Ë£¬µÃ±£Ö¤Æ«ÒÆÁ¿¶ÔÓ¦ÊýÖµµÄÕýÈ·ÐÔ¡£ ÈçÐèÁ˽â¸ü¶àÏà¹ØÖªÊ¶£¬ÇëÖÁÂó×ÓѧԺ¹ÙÍø²éѯ£¨http://www.maiziedu.com/£©¡£