2012-06-25 80 views
0

我是新来的android编程,并试图使这个简单的闹钟应用程序。我写了我的代码,并且编译时没有错误。该应用在模拟器中运行,这是主要活动要求的日期和时间,但是当我点击确认按钮时,它会显示消息 - “不幸的是,Timer1已停止工作。”安卓闹钟无法启动闹钟活动

我的主要活动的代码如下:

public void onClick(View v) { 
    EditText date = (EditText) findViewById(R.id.editDate); 
    EditText month = (EditText) findViewById(R.id.editMonth); 
    EditText hour = (EditText) findViewById(R.id.editHour); 
    EditText min = (EditText) findViewById(R.id.editMin); 
    int dt = Integer.parseInt(date.getText().toString()); 
    int mon = Integer.parseInt(month.getText().toString()); 
    int hr = Integer.parseInt(hour.getText().toString()); 
    int mnt = Integer.parseInt(min.getText().toString()); 
    Intent myIntent = new Intent(MainActivity.this, AlarmActivity.class); 
    pendingIntent = PendingIntent.getService(MainActivity.this, 0, myIntent, 0); 
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
    Calendar calendar = Calendar.getInstance(); 
    calendar.set(Calendar.DATE, dt); 
    calendar.set(Calendar.MONTH, mon); 
    calendar.set(Calendar.HOUR, hr); 
    calendar.set(Calendar.MINUTE, mnt); 
    alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); 
} 

我不明白是什么在logcat中的所有错误的意思,所以我张贴:

06-25 16:03:32.175: I/Process(566): Sending signal. PID: 566 SIG: 9 
06-25 16:03:53.775: I/dalvikvm(612): threadid=3: reacting to signal 3 
06-25 16:03:54.046: I/dalvikvm(612): Wrote stack traces to '/data/anr/traces.txt' 
06-25 16:03:54.255: I/dalvikvm(612): threadid=3: reacting to signal 3 
06-25 16:03:54.305: I/dalvikvm(612): Wrote stack traces to '/data/anr/traces.txt' 
06-25 16:03:54.735: I/dalvikvm(612): threadid=3: reacting to signal 3 
06-25 16:03:54.785: I/dalvikvm(612): Wrote stack traces to '/data/anr/traces.txt' 
06-25 16:03:54.925: D/gralloc_goldfish(612): Emulator without GPU emulation detected. 
06-25 16:05:09.605: D/AndroidRuntime(612): Shutting down VM 
06-25 16:05:09.605: W/dalvikvm(612): threadid=1: thread exiting with uncaught exception (group=0x409c01f8) 
06-25 16:05:09.685: E/AndroidRuntime(612): FATAL EXCEPTION: main 
06-25 16:05:09.685: E/AndroidRuntime(612): java.lang.NumberFormatException: Invalid int: "[email protected]" 
06-25 16:05:09.685: E/AndroidRuntime(612): at java.lang.Integer.invalidInt(Integer.java:138) 
06-25 16:05:09.685: E/AndroidRuntime(612): at java.lang.Integer.parse(Integer.java:375) 
06-25 16:05:09.685: E/AndroidRuntime(612): at java.lang.Integer.parseInt(Integer.java:366) 
06-25 16:05:09.685: E/AndroidRuntime(612): at java.lang.Integer.parseInt(Integer.java:332) 
06-25 16:05:09.685: E/AndroidRuntime(612): at com.kapymay.tversion1.MainActivity$1.onClick(MainActivity.java:34) 
06-25 16:05:09.685: E/AndroidRuntime(612): at android.view.View.performClick(View.java:3511) 
06-25 16:05:09.685: E/AndroidRuntime(612): at android.view.View$PerformClick.run(View.java:14105) 
06-25 16:05:09.685: E/AndroidRuntime(612): at android.os.Handler.handleCallback(Handler.java:605) 
06-25 16:05:09.685: E/AndroidRuntime(612): at android.os.Handler.dispatchMessage(Handler.java:92) 
06-25 16:05:09.685: E/AndroidRuntime(612): at android.os.Looper.loop(Looper.java:137) 
06-25 16:05:09.685: E/AndroidRuntime(612): at android.app.ActivityThread.main(ActivityThread.java:4424) 
06-25 16:05:09.685: E/AndroidRuntime(612): at java.lang.reflect.Method.invokeNative(Native Method) 
06-25 16:05:09.685: E/AndroidRuntime(612): at java.lang.reflect.Method.invoke(Method.java:511) 
06-25 16:05:09.685: E/AndroidRuntime(612): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
06-25 16:05:09.685: E/AndroidRuntime(612): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
06-25 16:05:09.685: E/AndroidRuntime(612): at dalvik.system.NativeStart.main(Native Method) 
06-25 16:05:10.445: I/dalvikvm(612): threadid=3: reacting to signal 3 
06-25 16:05:10.575: I/dalvikvm(612): Wrote stack traces to '/data/anr/traces.txt' 
+0

在logcat中查找错误? –

+0

nopes ...我怎么知道它是否是一个错误? – tanvi

+0

如果您在log cat中看到“异常”,则说明您有错误。我看到一个“java.lang.NumberFormatException:无效int” – Otra

回答

0
int dt = Integer.parseInt(date.getText().toString()); 
       int mon = Integer.parseInt(month.getText().toString()); 
       int hr = Integer.parseInt(hour.getText().toString()); 
       int mnt = Integer.parseInt(min.getText().toString()); 

一个这些不能解析为整数。

的方式,看看哪一个:

先写出来是这样的:

​​

所有4做类似

and then Log.i("YOURACTIVITNAME", "date:"+date+" hour"+.....); 

OR 代替Log.i可以只需插入一个断点,然后调试即可。并查看哪个人犯了错误。

在您的tostring之后使用.trim()删除空格也可能很好。