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):致命的な例外:メイン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。 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。 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(ネイティブメソッド)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:907)03-16 14:27:14.370:E / AndroidRuntime(29940):at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:665)03-16 14:27:14.370:E / AndroidRuntime(29940):dalvik.system.NativeStart.main(ネイティブメソッド)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:907)03-16 14:27:14.370:E / AndroidRuntime(29940):at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:665)03-16 14:27:14.370:E / AndroidRuntime(29940):dalvik.system.NativeStart.main(ネイティブメソッド)

何か案が?ありがとう...

4

6 に答える 6

1

この切り取りコードを使用してみてください:

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

;

于 2013-04-11T13:29:02.703 に答える
1

@ムラリ。クラスを CountDownTimer で拡張しないでください。アクティビティのみで拡張します。

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 に答える
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 または Service をまだ拡張していませんか?

方法 :

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

}

Activity の onCreate() に書いたので問題なく動きます。

于 2013-03-16T12:14:43.980 に答える
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 に答える