BI在Android中有一个B类,它扩展了主类(A)。当我点击按钮时,第一个屏幕关闭(或停止),第二个屏幕打开(B)。我的问题是当第二个屏幕打开时,它会自动再次启动类A的onCreate(因为它扩展了它,我知道这个因为如果我删除extends部分一切都很好,但我需要扩展一些类的设施一个)。我无法将活动A更改为" singleInstance"因为它对我的程序的某些部分会有害。是否可以让B级延伸到A级,但是当我点击那个按钮时,A级会再次开始?
public class A extends ActionBarActivity {
Button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent(A.this, B.class);
startActivity(intent);
}
});
}
public class B extends A {}
编辑:我确实喜欢那篇文章,我创建了private A myOtherActivity
,如果我做了类似`myOtherActivity.method(某事)的话; java不会抱怨。但是当我运行应用程序时,我得到了
26885-26885/asd.them.get.pampam E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: together.them.get.bangbang, PID: 26885
java.lang.NullPointerException
at pampam.them.get.pampam.PickScreen$1.onClick(B.java:43)
at android.view.View.performClick(View.java:4630)
at android.view.View$PerformClick.run(View.java:19339)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5335)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(Native Method)
我从活动A调用的方法是public String returnString(){
return "This is working";
}
答案 0 :(得分:1)
我认为你需要3个课来做你想做的事。
public abstract class A extends ActionBarActivity{}
public class B extends A {}
public class C extends A {}
答案 1 :(得分:0)
您可以将其他类用作抽象类c,或者您可以根据自己的需要查看是否要使用接口。根据您的要求实现接口或扩展抽象类。如果是活动,您必须将B类扩展到基类ACTIVITY。