これがおそらく非常に単純な答えであることはわかっていますが、ここで少し困惑しています。Panel
次のコンストラクターを使用して、カスタム ビュー を作成しています。
public Panel(Context context, AttributeSet attrs, int barLength){
super(context, attrs);
//paint object for drawing in onDraw
barPaint = new Paint();
bar = new Rect(3, 13, barLength, 3); // Rect object
//...other stuff, etc etc
}
このビューが使用されるアクティビティでは、テーブル レイアウトの異なるセル内で 5 回作成されます。引数に基づいて長さが変化Panel
する非常に単純なものです。Rect
barLength
したがって、Panel
ビューが実際に作成されるアクティビティでは、次のように呼び出されます。
private Panel tagBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tagBar = (Panel) findViewById(R.id.custView);
}
おわかりのように、これは上で概説したコンストラクターを使用しません。Panel
newを正しくインスタンスContext
化するにはどうすればよいAttributeSet
ですか? (引数なしで) 構築されるとint barLength
、それらは自動的に渡されるようになりました。tagBar
3 つの引数すべてを適切に渡すに は、どのようにインスタンス化する必要がありますか?
明確にするために、attrs.xml はstyleable
主に xml からバーの色を設定するために使用される属性ファイルです。誰でも私に指示を与えることができますか?
ありがとう!