在MapBaseActivity中 protected String foregroundStatus; protected String dataType; protected String page; protected String operate; DrivingActivity继承了MapBaseActivity,DrivingActivity中添加了fragment,在fragment中调用protected String foregroundStatus; protected String dataType; protected String page; protected String operate;这几个变量,应该怎么更改?
时间: 2024-04-09 10:33:34 浏览: 41
如果你想在DrivingActivity中修改这几个变量的值,可以直接在DrivingActivity中使用super关键字来调用父类MapBaseActivity的变量并进行赋值。例如:
```java
public class DrivingActivity extends MapBaseActivity {
// ...
public void someMethod() {
// 修改变量值
super.foregroundStatus = "new value";
super.dataType = "new value";
super.page = "new value";
super.operate = "new value";
}
// ...
}
```
通过使用`super`关键字,你可以访问并修改父类中的变量。请注意,父类中这些变量的可见性修饰符必须是`protected`或`public`,否则子类无法直接访问这些变量。
相关问题
我的意思是,在fragment中怎么调用MapBaseActivity中的变量
要在Fragment中调用MapBaseActivity中的变量,你可以通过`getActivity()`方法获取到当前Fragment所依附的Activity实例,然后将其转换为MapBaseActivity类型,以访问和修改MapBaseActivity中的变量。
例如,在你的Fragment中,可以使用以下代码来访问和修改MapBaseActivity中的变量:
```java
// 获取当前Fragment所依附的Activity实例
MapBaseActivity mapBaseActivity = (MapBaseActivity) getActivity();
// 访问和修改MapBaseActivity中的变量
mapBaseActivity.foregroundStatus = "new value";
mapBaseActivity.dataType = "new value";
mapBaseActivity.page = "new value";
mapBaseActivity.operate = "new value";
```
请确保当前Fragment所依附的Activity确实是MapBaseActivity类型,否则会导致类型转换异常。另外,要注意MapBaseActivity中的变量的可见性修饰符是否为`protected`或`public`,以确保能够在子类或其他类中进行访问。
阅读全文