我有两个活动称为Activity_A
和Activity_B
。我在 Activity_A 中有一个方法或函数,例如:
public void printNumber (int i) {
for(int j = 0; j <= i; j++) {
Log.w("TAG", "Print number is: " + j);
}
}
现在我想从另一个名为 Activity_B 的活动中调用此方法。
我正在尝试使用以下行调用此方法:
((Activity_A) this.getApplicationContext()).printNumber();
我在 Activity_B 的 onCreate 中写了这一行,这将使我的应用程序崩溃,并且 logcat 显示此错误:
java.lang.ClassCastException: android.app.Application cannot be cast to com.example.app.Activity_A
我怎样才能做到这一点?
编辑: 我发现了这个问题并根据“丰富”扩展Activity_A
到Activity_B
. 但问题是Activity_B
一个列表活动,我已经用ListActivity
.
和其他答案创建一个实例Activity_A
然后调用方法。如果我这样做,所有变量都将变为空或为空Activity_A
。而且我不想制作静态方法。
有没有其他方法可以在不创建静态引用或另一个实例的情况下做到这一点?