2013-04-10 62 views
0

所以,我有一個android應用程序完成一個項目,與我之前詢問有關此處的問題相同,但這次我遇到了與完全不同的方面的問題。由於該應用程序是關於神奇寶貝,在一個活動中,我有一些TextViews,EditTexts和一個設置爲製作IV計算器的按鈕。如果你很好奇並且不知道神奇寶貝中的「IV」是什麼,那當然是谷歌。無論如何,回到正軌......這裏這個圖片我放在一起重點介紹了我的問題在Android活動中引發奇怪的異常

enter image description here

在上面,你看到有丟說不能從類型的TextView轉換爲EditText上一個ClassCastException盒裝線...我從一般意義上知道這意味着什麼,但我無法理解它爲什麼會在這裏發生,因爲正如您在相關的代碼行(我將其粘貼到圖像中)中看到的那樣,涉及到投射的部分是從視圖(返回類型的findViewById)到EditText。 arg R.id.EditText06 IS引用了我的活動中的EditText,所以我沒有看到糟糕的投射嘗試應該發生在哪裏。只是爲了澄清一下上下文,這是編碼到按鈕的OnClickListener中的東西的一部分。

道歉,如果這個問題似乎可能是不完整的關於這個問題的內容,但它對我來說已經很晚了(太多以至於我在發佈這篇文章時要睡覺),請請求我發佈其他東西如果你覺得你需要它來試圖幫助我。

編輯:這裏是我的XML文件的活動有問題。 http://pastebin.com/g5B8d393

編輯2:好吧,現在情況變得更糟:(我目前的設置是我有一種虛擬的主要活動,只有一個按鈕來啓動一項活動,在測試時我更改了哪一項是根據需要啓動的。 ..直到昨天晚上還有一段時間(我真的沒有看到有什麼可以開始這個問題),一旦我完全正確地工作,並與其他活動一起工作,我的IVCalculatorActvity就可以正常工作。但現在,它只是崩潰(http://www.filehosting[DOT]org/file/details/429262/PokeUtility.zip) Grrr ...詛咒這個信譽限制鏈接發佈>。> 我明白了推理,但是meh .. 。

EDIT3:道歉ssuch突然編輯,但我只是剛剛看到你最新的帖子現在HalR。測試應用程序atm。

回答

0

findViewById不會返回類View的對象,而是返回XML文件中指示該對象的任何類。不管你認爲你如何描述你的EditText06,它認爲它是TextView而不是和EditText。仔細檢查並確保你沒有在多個地方定義id="EditText06"

如果您顯示您的xml,它可能會更容易讓某人指出您的xml文件中的具體問題。

您需要爲每個標籤使用一次格式「@ + id/...」,第一次顯示時(作爲參考或作爲id)。否則,您生成多個標籤。文件的方式,我認爲它需要

<?xml version="1.0" encoding="utf-8"?> 
<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=".IVCalculatorActivity" > 

    <Button 
      android:id="@+id/button3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentLeft="true" 
      android:text="@string/calculate" /> 

    <EditText 
      android:id="@+id/EditText01" 
      android:layout_width="140dp" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/textViewD" 
      android:layout_alignBottom="@id/textViewD" 
      android:layout_alignLeft="@+id/EditText05" 
      android:ems="10" /> 

    <EditText 
      android:id="@+id/EditText03" 
      android:layout_width="140dp" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/textView5" 
      android:layout_alignBottom="@id/textView5" 
      android:layout_alignLeft="@+id/EditText02" 
      android:ems="10" /> 

    <EditText 
      android:id="@+id/EditText04" 
      android:layout_width="140dp" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/textView6" 
      android:layout_alignBottom="@id/textView6" 
      android:layout_alignLeft="@+id/EditText03" 
      android:ems="10" /> 

    <TextView 
      android:id="@+id/textViewA" 
      android:layout_width="400dp" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/textViewC" 
      android:layout_alignParentTop="true" 
      android:text="@string/IVcalcHeader" /> 

    <TextView 
      android:id="@id/textViewC" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@id/textViewD" 
      android:layout_below="@id/textViewA" 
      android:layout_marginTop="26dp" 
      android:text="Stat" /> 

    <EditText 
      android:id="@id/EditText05" 
      android:layout_width="140dp" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@id/textViewC" 
      android:layout_alignBottom="@id/textViewC" 
      android:layout_alignRight="@id/textViewA" 
      android:ems="10" /> 

    <TextView 
      android:id="@id/textViewD" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/textViewB" 
      android:layout_below="@id/EditText05" 
      android:layout_marginTop="27dp" 
      android:text="Stat value" /> 

    <EditText 
      android:id="@+id/EditText02" 
      android:layout_width="140dp" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@id/textViewB" 
      android:layout_alignBottom="@id/textViewB" 
      android:layout_alignLeft="@id/EditText01" 
      android:ems="10" /> 

    <TextView 
      android:id="@id/textViewB" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@id/textView5" 
      android:layout_below="@id/EditText01" 
      android:layout_marginTop="28dp" 
      android:text="Level" /> 

    <TextView 
      android:id="@id/textView5" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@id/textView6" 
      android:layout_centerVertical="true" 
      android:text="EV count" /> 

    <TextView 
      android:id="@id/textView6" 
      android:layout_width="100dp" 
      android:layout_height="30dp" 
      android:layout_alignRight="@id/button3" 
      android:layout_below="@+id/EditText03" 
      android:layout_marginTop="29dp" 
      android:text="Base Stat" /> 

    <TextView 
      android:id="@+id/textViewE" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@id/textView6" 
      android:layout_below="@id/textView6" 
      android:layout_marginTop="40dp" 
      android:text="Nature" /> 

    <TextView 
      android:id="@+id/textView7" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@id/EditText04" 
      android:layout_alignTop="@id/button3" 
      android:text="  " /> 

    <EditText 
      android:id="@+id/EditText06" 
      android:layout_width="140dp" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@id/textViewE" 
      android:layout_alignBottom="@id/textViewE" 
      android:layout_alignLeft="@id/textView7" 
      android:ems="10" /> 

</RelativeLayout> 
+0

啊...希望我現在想起昨晚我的東西上傳到在線存儲:/而且啊,我明白,這並沒有完全恢復的類型查看什麼,我只是意味着該方法的**返回類型**是View,因爲TextView等是View的子類,並且可以視爲View對象,因此需要投射從'findViewById'返回的內容。 – 2013-04-10 09:33:49

+0

我很高興看看你的東西,如果它在某個地方。 – HalR 2013-04-10 12:53:02

+0

剛剛編輯添加鏈接到XML – 2013-04-10 13:25:40