0

你猜我有问题...

我的 Islem.java 类中有这段代码

public void myFinish(){
    Intent i = new Intent();
    i.setClassName(this, SaveScore.class);
    startActivity(i);
}

如果我用方法写myFinish();onCreate工作正常

但是,在 timer.java 类中

public void onFinish() {
    Islem is = new Islem();
    is.myFinish();
}

当我使用此代码时出现错误!:)

奇怪的是,当我将myFinish代码更改为

 public void myFinish(){

 /*     Intent i = new Intent();
    i.setClassName(this, SaveScore.class);
    startActivity(i);*/

    time.setText("Finish!");
}

即使我在 timer.jawa 类中使用它,它也可以正常工作!

LogCat 03-16 14:27:14.370: E/AndroidRuntime(29940): 致命异常: main 03-16 14:27:14.370: E/AndroidRuntime(29940): java.lang.NullPointerException 03-16 14:27:14.370 : E/AndroidRuntime(29940): 在 android.app.Activity.startActivityForResult(Activity.java:2833) 03-16 14:27:14.370: E/AndroidRuntime(29940): 在 android.app.Activity.startActivity(Activity. java:2959) 03-16 14:27:14.370: E/AndroidRuntime(29940): 在 com.edusoftgame.kidsmath.Islem.myFinish(Islem.java:323) 03-16 14:27:14.370: E/AndroidRuntime( 29940): 在 com.edusoftgame.kidsmath.Timer.onFinish(Timer.java:19) 03-16 14:27:14.370: E/AndroidRuntime(29940): 在 android.os.CountDownTimer$1.handleMessage(CountDownTimer.java: 118) 03-16 14:27:14.370: E/AndroidRuntime(29940): 在 android.os.Handler.dispatchMessage(Handler.java:99) 03-16 14:27:14.370:E/AndroidRuntime(29940): 在 android.os.Looper.loop(Looper.java:130) 03-16 14:27:14.370: E/AndroidRuntime(29940): 在 android.app.ActivityThread.main(ActivityThread.java :3693) 03-16 14:27:14.370: E/AndroidRuntime(29940): at java.lang.reflect.Method.invokeNative(Native Method) 03-16 14:27:14.370: E/AndroidRuntime(29940): at java.lang.reflect.Method.invoke(Method.java:507) 03-16 14:27:14.370: E/AndroidRuntime(29940): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java :907) 03-16 14:27:14.370: E/AndroidRuntime(29940): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665) 03-16 14:27:14.370: E/AndroidRuntime (29940):在 dalvik.system.NativeStart.main(本机方法)main(ActivityThread.java:3693) 03-16 14:27:14.370: E/AndroidRuntime(29940): at java.lang.reflect.Method.invokeNative(Native Method) 03-16 14:27:14.370: E/AndroidRuntime (29940): 在 java.lang.reflect.Method.invoke(Method.java:507) 03-16 14:27:14.370: E/AndroidRuntime(29940): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller。运行(ZygoteInit.java:907)03-16 14:27:14.370:E/AndroidRuntime(29940):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)03-16 14:27: 14.370: E/AndroidRuntime(29940): 在 dalvik.system.NativeStart.main(Native Method)main(ActivityThread.java:3693) 03-16 14:27:14.370: E/AndroidRuntime(29940): at java.lang.reflect.Method.invokeNative(Native Method) 03-16 14:27:14.370: E/AndroidRuntime (29940): 在 java.lang.reflect.Method.invoke(Method.java:507) 03-16 14:27:14.370: E/AndroidRuntime(29940): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller。运行(ZygoteInit.java:907)03-16 14:27:14.370:E/AndroidRuntime(29940):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)03-16 14:27: 14.370: E/AndroidRuntime(29940): 在 dalvik.system.NativeStart.main(Native Method)在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907) 03-16 14:27:14.370: E/AndroidRuntime(29940): 在 com.android.internal.os.ZygoteInit.main( ZygoteInit.java:665) 03-16 14:27:14.370: E/AndroidRuntime(29940): at dalvik.system.NativeStart.main(Native Method)在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907) 03-16 14:27:14.370: E/AndroidRuntime(29940): 在 com.android.internal.os.ZygoteInit.main( ZygoteInit.java:665) 03-16 14:27:14.370: E/AndroidRuntime(29940): at dalvik.system.NativeStart.main(Native Method)

任何的想法?谢谢...

4

6 回答 6

1

@穆拉利。不要使用 CountDownTimer 扩展您的课程。仅使用 Activity 扩展。

如果你想使用 CountDownTimer,那么像这样使用 -

    CountDownTimer countDownTimer;

在您的方法中:

public void myfininsh(){

    countDownTimer = new CountDownTimer(longvalue,500) {

@Override
            public void onTick(long millisUntilFinished) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onFinish() {
                // TODO Auto-generated method stub

                System.out.println("Enabled");

            }
        }.start();
}
}

这肯定会解决你的问题。

于 2013-03-18T05:26:59.673 回答
1

尝试使用此片段代码:

public void myFinish(){
Intent i = new Intent();
i.setClassName(this, SaveScore.class);
startActivity(i)

;

于 2013-04-11T13:29:02.703 回答
0

试试这个,而不是this use你的activity name.

Intent i = new Intent(MainActivity.this, SaveScore.class);
startActivity(i);
于 2013-03-16T11:34:08.583 回答
0

愿你的班级名称参考没有得到尝试,

    Intent i = new Intent();
    i.setClassName(YourclassName.this, SaveScore.class);
    startActivity(i);
于 2013-03-16T11:34:53.413 回答
0

试试这样...

Intent i = new Intent();
i.setClassName(your package name, your class name);
startActivity(i);
于 2013-03-16T12:10:56.247 回答
0

timer.java 类还没有扩展 Activity 或 Serivce 吗?

方法 :

public void myFinish(){
Intent i = new Intent();
i.setClassName(this, SaveScore.class);
startActivity(i);

}

工作正常,因为您在 Activity 的 onCreate() 中编写。

于 2013-03-16T12:14:43.980 回答