2010-12-11 16 views
3

new TestView()でオブジェクトを作成できるカスタムビューTestViewクラスを作成したいとします。 しかし、新しいビュー・クラスにはAttributeSetオブジェクトが必要です。そのAttributeSetをどこから取得すればよいのでしょうか?カスタムビューの作成

答えて

10

super()にそれらを渡すコンストラクタをViewから提供している限り、ほとんどの場合、それほど気にする必要はありません。

public CustomView(Context context) // No Attributes in this one. 
{ 
    super(context); 
    // Your code here 
} 

public CustomView(Context context, AttributeSet attrs) 
{ 
    super(context, attrs); 
    // Your code here 
} 

public CustomView(Context context, AttributeSet attrs, int default_style) 
{ 
    super(context, attrs, default_style); 
    // Your code here 
} 

Viewレイアウトにビューを追加するときに、通常で合格したいandroid:*属性のすべてに対処するための力仕事をしているの世話をします。あなたがそれらを定義した場合、あなたのコンストラクタは、それらの属性や、独自の使用を作ることができる:ビュークラスが提供する3コンストラクタを実装することができ

<com.blrfl.CustomView 
android:id="@+id/customid" 
android:layout_weight="1" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_gravity="center" 
blrfl:foo="bar" 
blrfl:quux="bletch" 
/> 
+0

私はその場でattrsセットを生成しようと多くの時間を費やしましたが、これを行う方法に関するドキュメントや例を見つけることは不可能だと近くにありました。良い質問は、attrsを使用しないときにfooとquuxのプロパティを設定し、新しいCustomView()を使う方法です。 – Emile

+0

CustomView(String foo、String bletch)おそらく。 – Emile

+0

質問してください。私は答えを投稿します。 – Blrfl

0

のいずれか..ので、属性セットでコンストラクタを提供することは必須ではありません。

関連する問題