我对Android开发非常陌生,所以如果这是一个“新手”的问题,我会提前道歉。
使用RelativeLayout,我有一个ID为reminderToggle的ToggleButton
<ToggleButton
android:id="@+id/reminderToggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/reminderDesc"
android:layout_alignBottom="@+id/reminderDesc"
android:layout_toRightOf="@+id/imageView1"
android:text="ToggleButton" />我正在使用:
ToggleButton reminderToggle = (ToggleButton)findViewById(R.id.reminderToggle);然后:
if(reminderToggle.isChecked()) {在按钮onClick listener中,在onCreate中,要查看的ToggleButton被选中。这一切都运行得很好。我不知道我做了什么,但现在应用程序崩溃时,按钮被点击。在LogCat`中,我可以看到
FATAL EXCEPTION: main
java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.ToggleButton
at nz.co.kwiius.park.ParkActivity$4.onClick(ParkActivity.java:139)第139行是:
ToggleButton reminderToggle = (ToggleButton)findViewById(R.id.reminderToggle);正如您在XML中看到的,reminderToggle是一个ToggleButton。那么为什么要大惊小怪呢?:)
提前谢谢你,JJ56
PS: reminderToggle的id只有一个,那就是这个ToggleButton
发布于 2011-12-16 12:47:54
清理和重建它,伙计。此外,请确保始终选中自动构建,以避免此类问题。
发布于 2011-12-16 13:07:42
如果你在ToggleButton之前定义了一个togglebutton,并且两者都使用相同的id定义,那么在这种情况下,如果你试图获取togglebutton来获取类转换异常,那么,因为findViewById()将返回你在该中使用相同id定义的第一个元素。在下面的XML中,用id reminderToggle定义的第一个元素是TextView。所以您不能使用该id获取ToggleButton
ToggleButton reminderToggle = (ToggleButton)findViewById(R.id.reminderToggle);// will result you classcast exception for the following xmlXML
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/reminderToggle" />"
<ToggleButton
android:id="@+id/reminderToggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ToggleButton" />https://stackoverflow.com/questions/8529788
复制相似问题