我的工作與可重用的希望自定義視圖。它應該有一個泛型類型,比如:添加自定義視圖到XML ...但與通用型
public class CustomViewFlipper<someType> extends ViewFlipper { }
我知道如何綁定一個正常的自定義視圖的XML文件。但我無法找到任何這種情況的例子。有什麼方法可以爲XML中的類定義泛型類型?
我的工作與可重用的希望自定義視圖。它應該有一個泛型類型,比如:添加自定義視圖到XML ...但與通用型
public class CustomViewFlipper<someType> extends ViewFlipper { }
我知道如何綁定一個正常的自定義視圖的XML文件。但我無法找到任何這種情況的例子。有什麼方法可以爲XML中的類定義泛型類型?
我不這麼認爲,但你可以創建自己的子類:
public class TheClassYouPutInTheLayoutFile extends CustomViewFlipper<someType>
,並使用這個類在你的佈局XML。
由於類型參數在字節碼實際上清除了,你可以使用XML類名,如果它是不參數化,然後將其轉換爲Java代碼正確的參數化類型。
考慮上課:
public class CustomViewFlipper<T extends View> extends ViewFlipper {
//...
,並在你的活動佈局的xml:
<view
class="com.some.package.CustomViewFlipper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/customFlipper"/>
在活動
則:
@Override
protected void onCreate(Bundle savedInstanceState) {
//...
@SuppressWarnings("unchecked")
CustomViewFlipper<TextView> customFlipper =
(CustomViewFlipper<TextView>) findViewById(R.id.customFlipper);
我使用這種方式,它爲我工作。
<com.some.package.CustomViewFlipper
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/customFlipper"/>
然後在活動中,如下
CustomViewFlipper<someType> customFlipper =
(CustomViewFlipper<someType>) findViewById(R.id.customFlipper)
我想實例化,目前這是正確的答案,所以接受它。謝謝。 – eks 2011-02-18 11:40:04