欢迎访问查资料网,分享范文、生活妙招、学科知识、科普常识等!

android开发中, 需要关闭另一个activity_android开发需要的工具

查资料网 分享 时间: 加入收藏 我要投稿 点赞

我想再安卓程序中的一个activity中关闭另一个activity。 我知道可以这样:

public class A_activity extends Activity { public static A_activity mc= null; protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); ..... mc = this; //疑惑的地方 } } public class B_activity extends Activity { protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); A_activity.mc.finish(); } }

我的疑惑是为什么mc = this; 这一句话要在onCreate方法中定义, 这里的this指代的是什么呢??

在其他地方定义会怎么样? 期待您的解答!

晕, 我发的时候格式还是正常的,发上去怎么成这样了。。 简单的程序, 应该不会影响各位大侠们阅读。。。 先拜谢了!

问题解答:

"mc=this"."this"指的就是该类的实例(也叫做类的对象)。在这里的意思就是在变量mc中存储下"A_activity"的引用,然后在B_Activity中才可调用其的finish()方法。

不一定非得在onCreate里面定义,也可在自定义的方法中定义,意义是一样的。

这不是一个android的特性,而是Java语言的一个特性,"this"关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。

可参考下《Java编程思想》中"this关键字"这一节。

追问这样啊, 就是说this通常是指代当前的类对象?

那么这一句: Intent(this,xxx.class);

就是在用类名显示跳转的时候, setClass的第一个参数不是应该是包名吗? 这里的this指什么呢?

回答Intent setClass (Context packageContext, Class<?> cls)

API中,第一个参数不是包名,而是一个Context类型,而Activity是继承Context的。那“this”代表的就是当前的Activity。

221381
领取福利

微信扫码领取福利

微信扫码分享