0
我有一個簡單的應用程序,它將有一堆EditTexts取數值,並在它們之間進行各種計算。就像一個單位轉換工具。Android ADT:擴展android.widget.EditText - 運行時類拋出異常
所以我定義爲CalcField的的EditText的子類作爲一個字段只包含小數值,與一些額外的方法,例如:
package com.example.ex1;
import android.content.Context;
import android.widget.*;
public class CalcField extends EditText {
// no idea why this is needed. without it i'm told an explicit constructor needed.
public CalcField(Context c) {
super(c);
}
public void setValue(float d) {
setText(String.valueOf(d));
}
public float getValue() {
return Float.valueOf(getText().toString());
}
}
==
在我的佈局我有一個字段X定義如下:
<EditText
android:id="@+id/X"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal" />
而在我的主要活動我試圖從我的佈局,抓住這個領域,像這樣:
CalcField fieldX = (CalcField) findViewById(R.id.X);
這給類轉換異常,我不明白:
07-16 21:23:49.049: E/AndroidRuntime(1429): FATAL EXCEPTION: main
07-16 21:23:49.049: E/AndroidRuntime(1429): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ex1/com.example.ex1.MainActivity}: java.lang.ClassCastException: android.widget.EditText cannot be cast to com.example.ex1.CalcField
07-16 21:23:49.049: E/AndroidRuntime(1429): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
誰能告訴我爲什麼我不能做這個簡單的類型轉換?
在此先感謝
對了,補充添加構造函數(上下文,AttributeSet中),我想。 – AMerle 2012-07-16 13:30:45
非常感謝,我會盡力。任何建議的最佳地點/方式瞭解這個東西? – user1526826 2012-07-17 12:07:13