安卓在子类中调用父类的方法
非常抱歉,可能是我表述不够清楚。在实际开发中,调用 getParentActivity() 方法需要在子界面中获取到父界面的实例。可以通过以下几种方式来获取父界面实例:
在子界面创建时保存父界面实例
在父界面中提供一个公共静态方法,返回当前 Activity 的实例。在子界面中创建时通过该方法获取当前的父界面实例。
代码示例:
java
public class ChildActivity extends AppCompatActivity {
private MainActivity mParentActivity;
@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 获取父界面实例mParentActivity = MainActivity.getParentActivity();
}private void doSomethingInParentActivity() {// 在子界面中访问父界面中的属性和方法mParentActivity.doSomething();
}
}
public class MainActivity extends AppCompatActivity {
private static MainActivity sActivity;
@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sActivity = this;
}// 在父界面中提供一个公共静态方法,返回当前 Activity 的实例
public static MainActivity getParentActivity() {return sActivity;
}public void doSomething() {// 在父界面中的方法
}
}
在 Intent 中传递父界面实例
在父界面中创建 Intent 时将当前的 Activity 实例作为额外参数传递给子界面,在子界面中使用 getIntent() 方法获取 Intent ,然后调用 getParcelableExtra() 方法获取父界面实例。
代码示例:
java
public class ChildActivity extends AppCompatActivity {
private MainActivity mParentActivity;
@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 获取父界面实例mParentActivity = getIntent().getParcelableExtra("parent_activity");
}private void doSomethingInParentActivity() {// 在子界面中访问父界面中的属性和方法mParentActivity.doSomething();
}
}
public class MainActivity extends AppCompatActivity {
private void openChildActivity() {
Intent intent = new Intent(this, ChildActivity.class);
intent.putExtra(“parent_activity”, this);
startActivity(intent);
}
public void doSomething() {// 在父界面中的方法
}
}
无论使用哪种方式来获取父界面实例,都可以在子界面中访问父界面的属性和方法。
安卓在子类中调用父类的方法相关推荐
- 继承实现的原理、子类中调用父类的方法、封装
一.继承实现的原来 1.继承顺序 Python的类可以继承多个类.继承多个类的时候,其属性的寻找的方法有两种,分别是深度优先和广度优先. 如下的结构,新式类和经典类的属性查找顺序都一致.顺序为D--- ...
- Day19:继承实现的原理、子类中调用父类的方法、封装
一.继承实现的原来 1.继承顺序 Python的类可以继承多个类.继承多个类的时候,其属性的寻找的方法有两种,分别是深度优先和广度优先. 如下的结构,新式类和经典类的属性查找顺序都一致.顺序为D--- ...
- qt 子类调用父类的函数_子类中调用父类的方法
父类名 . __init__(self, ...) 可以将父类中的init中的属性重复调用,减少代码的重复 class Vehicle: def __init__(self, name, speed, ...
- 在子类中调用父类的方法super
1.没有super之前,在子类里面需要父类里面的逻辑,但是我们是通过派生(自己定义了一个init,增加了一条line) class vehichle:#定义一个交通工具的类Country=" ...
- Python 在子类中调用父类方法详解(单继承、多层继承、多重继承)
Python 在子类中调用父类方法详解(单继承.多层继承.多重继承) by:授客 QQ:1033553122 测试环境: win7 64位 Python版本:Python 3.3.5 代码实践 ...
- Python在子类中调用父类方法
1.在子类中调用父类方法 super().方法名() 类名.方法名(self) spuer(要从哪一个类的上一级类开始查找, self).方法名() 子类调用父类方法时,一般都是想对父类方法进行扩展 ...
- python方法调用名字不一样_python中调用父类同名方法
知识回顾: 上节我们学习了类的构造方法. Python中构建构造方法主要使用__init__魔法方法. 实际项目操作中,由于类的继承导致可能覆盖同名的构造方法,导致只能使用子类的构造,而无法调用父类的 ...
- 【Kotlin】Kotlin 类的继承 三 ( super 关键字使用 | super@ 外部调用父类方法 | 子类选择性调用 父类 / 接口 方法 super )
文章目录 I . 子类调用父类总结 II . 子类调用父类方法 ( super ) III . 子类内部类调用父类方法 ( super@ ) IV . 子类选择调用不同的 父类 / 接口方法 ( su ...
- c++ 子类对象调用父类的方法
第一种方式就是子类重写父类的方法,在子类中定义和父类同样的方法,方法体中调用父类的方法 父类代码 #pragma once #include "CClientSocket.h" c ...
最新文章
- operamasks-ui2.0 +MVC4.0+EF5.0实战之一 开篇及布局控件介绍
- 第一章 操作系统引论
- 狗窝里的小日子- 3 ...
- Nginx基本功能及其原理
- ble开发 linux_嵌入式开发的必备知识点
- 2.程序员的自我修养---编译和链接
- 常见脱壳与反编译工具
- iF.svnadmin安装部署
- U盘病毒专杀工具(usbcleaner)(绿色版)
- WIN7 64位 VS2013下载
- 电子内窥镜的研究现状及发展趋势
- mc洪磊-2012经典语言大合集 音乐无处不在 老婆无人替代 好听音乐 就用酷狗
- QQ交谈小图标代码html,仿qq聊天工具设计源码及说明
- 靶机渗透练习81-Momentum:2
- 关于Palantir ——第六部分 – 图分析应用
- 高德地图海量点 API 初探
- [NOIP 2005 T2] 过河 (动态规划+简单数论)
- 计算机智能未来发展趋势,在未来,人工智能的几个发展方向或趋势!
- 什么是知识管理?知识管理的方法?
- 第十七次ScrumMeeting博客