请教两个问题

leetow2006 2018-11-08 01:51:13
一、
我有两个Activity,我在FirstActivity中通过startActivity第二个SecondActivity后,
我想在SecondActivity中调用FirstActivity中方法function(),我在SecondActivity中
用FirstActivity.this.function()是不行的,请问如何才能在SecondActivity调用FirstActivity中方法?
FirstActivity.this不是FirstActivity的对象吗?
二、请看:
public class Test10 {

public static void main(String[] args) {
// TODO 自动生成的方法存根
class A
{
void shixian()
{
dsp();//这里调用外部类中的方法dsp,并且外部类中的方法只能是static
}
}

}
static void dsp() //这里只能是static
{
System.out.println("main dsp");
}

}
我在内部类中调用外部类中的方法,并且外部类中的方法只能是static静态的;
可是我发现在安卓中:
public class ThirdActivity extends Activity {
private Button btn=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO 自动生成的方法存根
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.third_layout);

btn=(Button)findViewById(R.id.thirdBtn);
btn.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO 自动生成的方法存根
Intent intent=new Intent(ThirdActivity.this,SecondActivity.class);
startActivity(intent);
finish();
}
});
}

}
这里的finish是对象ThirdActivity的方法,它是继承Activity,但它不是静态的,
这里也是在内部类中调用外部类中的方法,请问这里为什么可以不是静态的?
而上面那个例子必须是静态的?
...全文
33 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
r00_a2lBUR 2018-11-09
  • 打赏
  • 举报
回复
引用 5 楼 leetow2006 的回复:
太感谢了,学习了
那就结贴给分吧
leetow2006 2018-11-09
  • 打赏
  • 举报
回复
太感谢了,学习了
YXTS122 2018-11-09
  • 打赏
  • 举报
回复
在类A中调用类Test10中的dsp()方法,在类OnClickListener中调用类ThirdActivity中的finish()方法
没有鱼了 2018-11-08
  • 打赏
  • 举报
回复
第一个问题:FirstActivity.this指向的是FirstActivity这个名字对应的实例的引用,你在FirstActivity里面这样用可以,因为在当前类里操作都是同一个对象的同一块内存;但是你在别的类里又没实例化FirstActivity,怎么可能拥有FirstActivity的引用,自然也就没办法用了;就好比你可以用自己的手摸自己脸,别人没获得你许可,他肯定不能用你的手摸你的脸;

第二个问题:我看你那个内部类是定义在main方法中的吧,main方法是静态的,你这里定义的东西是静态引用,想调用外部类非静态方法,肯定不行啊,静态引用不能调用非静态方法,涉及到类加载问题;

下面那个Android的例子,非静态内部类默认拥有外部类的引用,所以你使用finish()相当于ThirdActivity.this.finish(),这跟java是一样的;你把那个java例子中的内部类放到main方法外面,dsp()就可以是非静态了;
r00_a2lBUR 2018-11-08
  • 打赏
  • 举报
回复
用public static定义的方法可以直接调用

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧