正如你所说,我有一个问题...
我在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)
任何想法?感谢...
答案 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()中写道。