Android组件系列---当前Activity跳转到另一个Activity的详细过程...

Android组件系列---当前Activity跳转到另一个Activity的详细过程...

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添加布局⽂件:(⽂件名必须为⼩写)在该布局⽂件中添加⼀个 在中设置该Activity所使⽤的布局⽂件,即在onCreate()⽅法中添加如下代码:setContentView() ;(3)在⽂件中注册该Activity:(想要启动的Activity⼀定要先在Manifest⽂件中进⾏注册)打开⽂件,注意⾥⾯的Activity标签,即以下代码:1 4 5 6 7 8

代码解释如下:02⾏:代表Activity的名字:包名+类名。03⾏:label指定活动中标题栏的内容。04⾄08⾏:Activity的⼦标签,即:1 2 3 4 以上这段代码放在哪个Activity⾥,那个Activity就作为应⽤程序默认启动的Activity。即程序运⾏后的默认启动的Activity。现在将SecondActivity注册进去,在第⼀个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 10

11 16

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 5

6

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信