意图不起作用

时间:2013-03-16 11:28:26

标签: android android-intent countdowntimer

正如你所说,我有一个问题...

我在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):at com.edusoftgame.kidsmath.Islem.myFinish(Islem.java:323) 03-16 14:27:14.370:E / AndroidRuntime(29940):at 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):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):at dalvik.system.NativeStart.main(Native Method)

任何想法?感谢...

6 个答案:

答案 0 :(得分:1)

@Murali。不要使用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();
}
}

这肯定会解决您的问题。

答案 1 :(得分:1)

尝试使用此剪辑代码:

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

答案 2 :(得分:0)

试试这个,而不是this use activity name

Intent i = new Intent(MainActivity.this, SaveScore.class);
startActivity(i);

答案 3 :(得分:0)

你的班级名称参考可能不会尝试,

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

答案 4 :(得分:0)

尝试这样......

Intent i = new Intent();
i.setClassName(your package name, your class name);
startActivity(i);

答案 5 :(得分:0)

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

方法:

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

}

工作正常,因为你在活动的onCreate()中写道。