Java Android应用程序问题
我一直在尝试开发一个应用程序。但是,当我声明say class Button的任何对象或任何其他类时,当我运行它时,它会显示“不幸的是,应用程序已停止”。请帮忙 xml文件Java Android应用程序问题,java,android,xml,class,object,Java,Android,Xml,Class,Object,我一直在尝试开发一个应用程序。但是,当我声明say class Button的任何对象或任何其他类时,当我运行它时,它会显示“不幸的是,应用程序已停止”。请帮忙 xml文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pa
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:id="@+id/button3"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/timePicker1"
android:layout_centerVertical="true"
android:layout_marginRight="17dp"
android:text="Set" />
<AnalogClock
android:id="@+id/analogClock1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="24dp" />
<TimePicker
android:id="@+id/timePicker2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/timePicker1"
android:layout_below="@+id/analogClock1" />
<TimePicker
android:id="@+id/timePicker1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
}
日志
02-28 17:06:42.917: E/AndroidRuntime(18977): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.quiet/com.example.quiet.MainActivity}: java.lang.ClassCastException: android.widget.TimePicker cannot be cast to android.widget.Button
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.app.ActivityThread.access$600(ActivityThread.java:123)
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.os.Handler.dispatchMessage(Handler.java:99)
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.os.Looper.loop(Looper.java:137)
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.app.ActivityThread.main(ActivityThread.java:4424)
02-28 17:06:42.917: E/AndroidRuntime(18977): at java.lang.reflect.Method.invokeNative(Native Method)
02-28 17:06:42.917: E/AndroidRuntime(18977): at java.lang.reflect.Method.invoke(Method.java:511)
02-28 17:06:42.917: E/AndroidRuntime(18977): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)
02-28 17:06:42.917: E/AndroidRuntime(18977): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
02-28 17:06:42.917: E/AndroidRuntime(18977): at dalvik.system.NativeStart.main(Native Method)
02-28 17:06:42.917: E/AndroidRuntime(18977): Caused by: java.lang.ClassCastException: android.widget.TimePicker cannot be cast to android.widget.Button
02-28 17:06:42.917: E/AndroidRuntime(18977): at com.example.quiet.MainActivity.onCreate(MainActivity.java:22)
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.app.Activity.performCreate(Activity.java:4470)
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
02-28 17:06:42.917: E/AndroidRuntime(18977): ... 11 more
我猜这是因为
btn1.setText(小时)代码>
因为hour是int,所以setText将查找具有您传递的ID的资源。尝试向setText传递字符串。您正在调用setText(0)
这会导致异常,而不是像setText(“12:00”)
那样调用 试试看:
btn1.setText("" + hour);
因此,为了解决int-to-string问题,这些行看起来可疑。(免责声明-这可能是也可能不是主要问题)
您正在为布局关系使用“@+id/”术语。删除+符号,这样您就不会试图定义ID。例如:
android:layout_alignRight="@id/timePicker1"
....
android:layout_alignLeft="@id/timePicker1"
但是,请在声明资源id的小部件上保留资源id的@+id/标记:
<TimePicker
android:id="@+id/timePicker1"
我们真的需要你的日志猫,但作为对你发布的代码的暗箭伤人,我猜btn1.setText(hour)
在hour上找到了一个空指针,因为它的值没有定义,或者如果它被定义了,你需要btn1.setText(String.valueOf(hour))
要将int转换为string,我使用了相同的代码..,它正在工作..,您遇到了什么错误?您是否在清单中声明了您的活动?android.widget.Button不能转换为android.widget.TimePicker
。MainActivity.java的第22行。所以我相信这不是你实际拥有的错误的完整代码。我已经删除了刚刚留下的btn1声明的所有内容。。。还是不行
android:layout_alignRight="@id/timePicker1"
....
android:layout_alignLeft="@id/timePicker1"
<TimePicker
android:id="@+id/timePicker1"