【发布时间】:2014-04-01 08:44:15
【问题描述】:
我一直在尝试开发一个应用程序。但是当我声明任何类 Button 甚至任何其他类的对象时,当我运行它时它会说“不幸的是应用程序已停止”。请帮忙。
xml 文件
<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>
主 java 文件
包 com.example.quiet;
导入android.os.Bundle; 导入android.app.Activity;
导入android.view.Menu; 导入android.widget.Button;
公共类 MainActivity 扩展 Activity {
int hour;
int minute;
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1=(Button)findViewById(R.id.button3);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
日志
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
【问题讨论】:
-
我们真的需要你的 LogCat,但作为你发布的代码在黑暗中的狂野刺伤,我猜
btn1.setText(hour)会在小时内找到一个 NullPointer,因为它的值也没有定义或者如果它被定义你需要有btn1.setText(String.valueOf(hour));将 int 变成一个字符串 -
我使用了相同的代码..,它的工作..,你得到什么错误??
-
您是否在 Manifest 中声明了您的活动?
-
android.widget.Button cannot be cast to android.widget.TimePicker。 MainActivity.java 的第 22 行。所以我相信这不是你实际拥有的完整代码,这是错误的。 -
我已经删除了刚刚离开 btn1 声明的所有内容......仍然无法正常工作
标签: java android xml class object