首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“无法将TextView转换为ToggleButton",但它是一个ToggleButton

“无法将TextView转换为ToggleButton",但它是一个ToggleButton
EN

Stack Overflow用户
提问于 2011-12-16 12:29:40
回答 2查看 1.8K关注 0票数 1

我对Android开发非常陌生,所以如果这是一个“新手”的问题,我会提前道歉。

使用RelativeLayout,我有一个ID为reminderToggle的ToggleButton

代码语言:javascript
运行
复制
<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" />

我正在使用:

代码语言:javascript
运行
复制
ToggleButton reminderToggle = (ToggleButton)findViewById(R.id.reminderToggle);

然后:

代码语言:javascript
运行
复制
if(reminderToggle.isChecked()) {

在按钮onClick listener中,在onCreate中,要查看的ToggleButton被选中。这一切都运行得很好。我不知道我做了什么,但现在应用程序崩溃时,按钮被点击。在LogCat`中,我可以看到

代码语言:javascript
运行
复制
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行是:

代码语言:javascript
运行
复制
ToggleButton reminderToggle = (ToggleButton)findViewById(R.id.reminderToggle);

正如您在XML中看到的,reminderToggle是一个ToggleButton。那么为什么要大惊小怪呢?:)

提前谢谢你,JJ56

PS: reminderToggle的id只有一个,那就是这个ToggleButton

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-16 12:47:54

清理和重建它,伙计。此外,请确保始终选中自动构建,以避免此类问题。

票数 7
EN

Stack Overflow用户

发布于 2011-12-16 13:07:42

如果你在ToggleButton之前定义了一个togglebutton,并且两者都使用相同的id定义,那么在这种情况下,如果你试图获取togglebutton来获取类转换异常,那么,因为findViewById()将返回你在该中使用相同id定义的第一个元素。在下面的XML中,用id reminderToggle定义的第一个元素是TextView。所以您不能使用该id获取ToggleButton

代码语言:javascript
运行
复制
ToggleButton reminderToggle = (ToggleButton)findViewById(R.id.reminderToggle);// will result you classcast exception for the following xml

XML

代码语言:javascript
运行
复制
<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" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8529788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档