活动运行问题。 Android的

时间:2015-02-17 21:57:06

标签: java android eclipse android-studio

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"; }

2 个答案:

答案 0 :(得分:1)

我认为你需要3个课来做你想做的事。

public abstract class A extends ActionBarActivity{}
public class B extends A {}
public class C extends A {}

答案 1 :(得分:0)

您可以将其他类用作抽象类c,或者您可以根据自己的需要查看是否要使用接口。根据您的要求实现接口或扩展抽象类。如果是活动,您必须将B类扩展到基类ACTIVITY。