2023年7月7日发(作者:)
Android组件系列----当前Activity跳转到另⼀个Activity的详细过程【声明】欢迎转载,但请保留⽂章原始出处→_→
【正⽂】
⼀、如何在⼀个应⽤程序当中定义多个Activity:步骤如下:(1)定义⼀个类,继承Activity(2)在该类当中,复写Activity当中的onCreate()⽅法(3)在⽂件中注册该Activity详细解释如下:(1)定义⼀个类,继承Activity:在src⽂件夹⾥⾯的包中新建⼀个class⽂件,可命名为:(2)在该类当中,复写Activity当中的onCreate()⽅法:在菜单栏选择Source--->Override/Implement Methods,弹出框,选择其中的onCreate()⽅法:注:onCreate()⽅法是Activity运⾏的⼊⼝。紧接着,在layout⽂件夹中,为该Activity添加布局⽂件:(⽂件名必须为⼩写)在该布局⽂件中添加⼀个
代码解释如下:02⾏:代表Activity的名字:包名+类名。03⾏:label指定活动中标题栏的内容。04⾄08⾏:Activity的⼦标签,即:1 2 android:name="0201_Activity"3 android:label="SecondActivity" > 4
⼆、Android当中的back stack(后退栈):(栈:⼦弹上膛,先进后出) android操作系统只显⽰back stack中最上⾯的元素(只显⽰栈顶端的activity)。在上⽅的图中,当⽤户点击后退按钮时,出现以下情况:(最上⽅的activity将被移除,依此类推)
三、启动⼀个Activity的⽅法:即在默认启动的Activity中启动另⼀个Activity核⼼代码如下:
Intent intent = new Intent();ss(, );
步骤如下:(1)⽣成⼀个意图对象 Intent(2)调⽤setClass⽅法设置所要启动的Activity(3)调⽤startActivity⽅法启动Activity具体解释如下:【实例】在第⼀个Activity点击按钮,来启动第⼆个Activity;在第⼆个Activity点击按钮,返回到第⼀个Activity(1)⽣成⼀个意图对象 Intent (Intent封装了你想做什么这件事)在布局⽂件activity_⽂件中添加⼀个button,并在中⽣成button的监听器,⽣成意图对象的代码如下:Intent intent = new Intent() ;(2)调⽤setClass⽅法设置所要启动的Activity:Intent中的setClass⽅法格式如下:ss(packageContext, cls) ;参数解释如下:第⼀个参数:这个context对象即当前activity对象。Activity是context类的⼦类,此时Activity向上转型了。第⼆个参数:表⽰意图启动的那个Activity 。(3)调⽤startActivity⽅法启动Activity总⽽⾔之,监听器部分的【核⼼代码】如下: class ButtonListener implements OnClickListener { public void onClick(View v) { Intent intent = new Intent(); //setClass函数的第⼀个参数是⼀个Context对象 //Context是⼀个类,Activity是Context类的⼦类,也就是说,所有的Activity对象,都可以向上转型为Context对象 //setClass函数的第⼆个参数是⼀个Class对象,在当前场景下,应该传⼊需要被启动的Activity类的class对象 ss(, ); startActivity(intent); }
}核⼼代码为第04⾏⾄第09⾏。【完整代码】如下:⽅案⼀ 1
11
17 activity_
1 package ychange; 2
3 import ty; 4 import ; 5 import ; 6 import ; 7 import ; 8 import kListener; 9 import ;10
11 public class MainActivity extends Activity {12
13 private Button button ;14
15 @Override16 protected void onCreate(Bundle savedInstanceState) {17 te(savedInstanceState);18 setContentView(ty_main);19
20 button = (Button)findViewById(1) ;21
22 // lickListener(new ButtonListener()) ;
23
24 //为Button绑定监听器,采⽤匿名内部类25 lickListener(new OnClickListener() {26
27 @Override28 public void onClick(View arg0) {29 //下⾯这⼀⾏,有两种⽅法。⽅法⼀:30 Intent intent = new Intent(,) ;
31 /* //⽅法⼆:32 Intent intent = new Intent();33 ss(, );*/34 //备注:setClass函数的第⼀个参数是⼀个Context对象35 //备注:Context是⼀个类,Activity是Context类的⼦类,也就是说,所有的Activity对象,都可以向上转型为Context对象36 //备注:setClass函数的第⼆个参数是⼀个Class对象,在当前场景下,应该传⼊需要被启动的Activity类的class对象37
38 startActivity(intent) ;
39 }40 } );41
42 }43
44 /* class ButtonListener implements OnClickListener {45
46 @Override47 public void onClick(View arg0) {48 Intent intent = new Intent();49 ss(, );50 startActivity(intent) ;51 }52
53 }*/54
55
56 @Override57 public boolean onCreateOptionsMenu(Menu menu) {58 // Inflate the menu; this adds items to the action bar if it is present.59 getMenuInflater().inflate(, menu);60 return true;61 }62
63 }
1 2
6
14
15
1 package ychange; 2
3 import ty; 4 import ; 5 import ; 6 import ; 7 import kListener; 8 import ; 9
10 public class SecondActivity extends Activity {11
12 private Button button1 ;13 @Override14 protected void onCreate(Bundle savedInstanceState) {15 te(savedInstanceState);16 setContentView();17
18 button1 = (Button)findViewById(1) ;19
20 //为返回按钮绑定监听器21 lickListener(new OnClickListener() {22
23 @Override24 public void onClick(View arg0) {25 Intent intent = new Intent(,) ;26 startActivity(intent) ;
27 }28
29 });
30
31
32 }33 }并在清单⽂件中注册SecondActivity,添加如下代码:1 2 android:name=".SecondActivity"3 android:label="SecondActivity" > 4
或者如果不绑定监听器的话,可以对布局⽂件中的Button添加如下代码:android:onClick="gotoSecondActivity"【完整代码】如下:⽅案⼆
1
17
26 activity_
1 package 004activity01; 2
3 import ty; 4 import ; 5 import ; 6 import ; 7 import ; 8
9 public class MainActivity extends Activity {10
11 @Override12 protected void onCreate(Bundle savedInstanceState) {13 te(savedInstanceState);14 setContentView(ty_main);15 n("MainActivity-onCreate");16 }17
18 @Override19 protected void onStart() {20 t();21 n("MainActivity-onStart");22 }23
24 @Override25 protected void onResume() {26 me();27 n("MainActivity-onResume");28 }29
30 @Override31 protected void onPause() {32 e();33 n("MainActivity-onPause");34 }
35
36 @Override37 protected void onStop() {38 ();39 n("MainActivity-onStop");40 }
41
42
43 @Override44 protected void onRestart() {45 art();46 n("MainActivity-onRestart");47 }48
49
50 @Override51 protected void onDestroy() {52 roy();53 n("MainActivity-onDestroy");54 }55
56 57 /*58 * 通过这个⽅法跳转到SecondActivity界⾯59 */60 public void gotoSecondActivity(View view){61 //创建⼀个意图62 Intent intent = new Intent(,);63 startActivity(intent);64 }65
66 @Override67 public boolean onCreateOptionsMenu(Menu menu) {68 // Inflate the menu; this adds items to the action bar if it is present.69 getMenuInflater().inflate(, menu);70 return true;71 }72
73 }
1 2
7
13
21
22
1 package 004activity01; 2
3 import ty; 4 import ; 5 import ; 6 import ; 7 import ; 8
9 public class SecondActivity extends Activity{10
11 @Override12 protected void onCreate(Bundle savedInstanceState) {13 // TODO Auto-generated method stub14 te(savedInstanceState);15 setContentView();16 n("SecondActivity-onCreate");17 }18
19 @Override20 protected void onStart() {21 t();22 n("SecondActivity-onStart");23 }24
25 @Override26 protected void onResume() {27 me();28 n("SecondActivity-onResume");29 }30
31 @Override32 protected void onPause() {33 e();34 n("SecondActivity-onPause");35 }
36
37 @Override38 protected void onStop() {39 ();40 n("SecondActivity-onStop");41 }
42
43
44 @Override45 protected void onRestart() {46 art();47 n("SecondActivity-onRestart");48 }49
50
51 @Override52 protected void onDestroy() {53 roy();54 n("SecondActivity-onDestroy");55 }56
57 /*58 * 通过这个⽅法跳转到SecondActivity界⾯59 */60 public void gotoMainActivity(View view){61 //创建⼀个意图62 Intent intent = new Intent(,);63 startActivity(intent);64 finish();//结束当前的Activity65 //如果没有上⾯的finish(),那么当跳转到MainActivity之后,SecondActivity只会onStop,不会ondestroy。即仍然还在栈中66 //需要注意的是,当它跳到MainActivity时,会去重新创建⼀个新的MainActivity,即执⾏MainActivity中的onCreate()⽅法;67 }68
69 }并在清单⽂件中注册SecondActivity,添加如下代码:1 2 android:name=".SecondActivity"3 android:label=".SecondActivity"> 4
当⽤户打开应⽤程序,之后按Home键返回到主页(或者按电源键,效果是⼀样的),再回到原来的程序。⽣命周期描述如下:启动默认Activity时:MainActivity:onCreateMainActivity:onStartMainActivity: onResume按Home键返回到主页:MainActivity:onPauseMainActivity:onStop再回到原来的程序:MainActivity:onRestartMainActivity:onStartMainActivity:onResume
⽅案⼆的【⼯程⽂件】密码:jfm9
想学习代码之外的软技能?不妨关注我的微信公众号:⽣命团队(id:vitateam)。扫⼀扫,你将发现另⼀个全新的世界,⽽这将是⼀场美丽的意外:
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688674143a161609.html
评论列表(0条)