你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】AndroidStudio实用教程(三):界面之间数据传递

[复制链接]
STMCU小助手 发布时间:2022-3-8 11:20
一、直接传递参数
+ K) q, e  k! L# k/ ~1、发送

1 R: ?! i( l2 @# b$ h4 n% y# q
  1. //实例化一个新的窗口,并指定从那个窗口到哪个窗口
    5 U+ ~  W. ~+ o2 `9 S) a, R
  2. intent = new Intent(MainActivity.this,secondwindow.class);
    * \+ d" H* y1 Q- \+ |3 \" n
  3. //将数据发送到intent中5 o% H4 B* u& R0 x4 Z
  4. intent.putExtra("name",ed_text.getText().toString().trim() );; L9 m0 |) }" m& Q+ `
  5. //启动新窗口
    ; T. p" z4 d2 R- F- N5 }  Z# s: }
  6. startActivity(intent);
复制代码

8 `0 {7 S+ T+ b% }4 E: @2、接收. o1 p# b# n5 O  f  Y* w  t# [: ~  E5 f0 Z
  1. //获取intent
    + a0 r8 ]9 {$ X) x
  2. Intent intent=getIntent();% h1 C2 Y% z1 m  H1 x# J4 ^5 O
  3. //获取数据并显示到text中' {6 r* a7 O0 ]$ n# s4 ^/ n
  4. textvew.setText(intent.getStringExtra("name"));
    3 y) z& @8 U% f0 U' ?0 h
复制代码

; W/ n. Z5 E. b6 O" [二、使用Bundle绑定数据9 \7 a- ~2 j1 g2 v6 n8 [' y$ A+ W" K: `
1.新建一个Class

! X8 B( [" T1 k2 H9 K6 U! T) }5 g) R) B9 z" \1 H
]T0Y26S(PI2))30$@_B7U$U.png
& g" ?  e) E; s+ W4 J
1 v7 b& k4 d( d& J7 E小技巧:输入完private String name;private int age;两个属性后需只需要在studio的菜单栏code->generation->Getter setter即可自动生成这两个方法,如下所示。
: a( S9 ], N# \5 f' {6 D2 a9 c# Y+ C
H]V4XO2OQ8NP}F`U`FJ4~I8.png
& _: w' o9 F0 S, @- W7 \
! ~( w/ r# a$ h9 o4 _8 c. R代码如下:
( W3 l, e: [0 v' L$ F) F! A$ Q
  1. 5 y' n% E9 n0 G% q  l5 _6 Y
  2. public class user implements Serializable {7 ?/ j" h! ~9 m4 B

  3. - F- ]" G. q/ B8 y- @1 x: l

  4. 8 u7 V3 L* W, \/ s- u; W
  5.     private String name;  t7 [) v; B- T# N4 @
  6.     private int age;
    ( M5 p+ J, {) U* `

  7. " V7 \0 `& X6 H
  8.     public String getName() {
    1 [! [) u# M, K0 @
  9.         return name;9 D  ?5 B. {- \; Z
  10.     }
    " H/ L/ w/ Z) W6 N$ X

  11.   A6 J' Q, C( G8 }
  12.     public void setName(String name) {- w& I# C' X; x9 \0 x) c
  13.         this.name = name;
    - ^- w5 e" K( \$ P/ D; k% f
  14.     }
    # b3 p  G! N0 U7 F2 r! c' E- d

  15. 7 r( q8 M0 b) m9 |% f* V
  16.     public int getAge() {6 H1 ^3 o1 G; u! m
  17.         return age;
    - x+ t. l# a( Y7 W7 T; _
  18.     }4 P: E. N- C! X# [; H  @

  19. 9 Y( ]# a5 G$ A# h# D: \
  20.     public void setAge(int age) {
    9 ~% B6 l8 ~+ N2 X
  21.         this.age = age;
    3 P6 T1 S* W3 `
  22.     }) W' ?7 I% d/ J: G; \! L5 I

  23. ) M9 f- r7 p# c: [3 m! w2 ?

  24. / C$ k! b* Q# k. T
  25. }. H6 A6 E8 z: x/ }6 S2 K, n, f  z# V
复制代码
  B7 @5 J& b) F6 L% }: C
2.将数据绑定并发送出去' r, d, a$ s/ c
代码如下(示例):
  1.   intent= new Intent(MainActivity.this,thirdwindow.class);
    $ G% M' Y  n9 {' T2 W, C1 [
  2.   //bundle对象. p$ g8 z( E& Y1 ]% C$ W2 Z
  3.   Bundle b=new Bundle();
    + J/ c7 u% v/ M1 A
  4.   //数据对象, y7 I" Z+ w( s
  5.   user user=new user();
    / N* d: @& N( y# T5 M9 R) }: z8 P. t
  6.   user.setAge(180);6 _; z) K6 @3 `. V5 r: \1 J4 }  J
  7.   user.setName("李百万");
    ; i3 t$ \* n6 f9 n
  8.   //将数据打包进bundle中& @8 Q: ~, Z& T% r. F* e# v( H
  9.   b.putSerializable("user", (Serializable) user);
    - V( q6 q/ O9 U* c) N& O
  10.   //将打包好的bundle发送出去+ A0 z  Q* V8 w+ T3 C% o% c. X. t
  11.   intent.putExtras(b);
    + {) R* t- U! \; j1 Z
  12.   startActivity(intent);
复制代码
6 y# ?# ~  m$ w4 }+ x$ V# n
3.接收界面接收数据) {% s7 A7 O( _; N
  1.   //获得绑定的数据包+ y: r7 D1 V# x" @$ k# u
  2.   Bundle bundle = getIntent().getExtras();
    9 k5 i. \- c) [7 r. C: x
  3.   user user=(user) bundle.getSerializable("user");
    / O* }4 x# E( ?% ^  s: h/ O
  4.   String str="名字:"+user.getName()+" 年龄:"+user.getAge();
复制代码
  w6 _9 t  D: S$ y
+ _' B  L% R1 j$ E0 W8 E
赞 收藏 评论0 发布时间:2022-3-8 11:20

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版