android - How to instantiate custom view when other arguments are added? -


i know simple answer, i'm little stumped here. i'm creating custom view, panel, following constructor:

public panel(context context, attributeset attrs, int barlength){     super(context, attrs);      //paint object drawing in ondraw     barpaint = new paint();     bar = new rect(3, 13, barlength, 3); // rect object      //...other stuff, etc etc  } 

in activity view used, created 5 different times within different cells of table layout. panel simple rect length vary based on argument barlength.

so, in activity panel views created, they're called so:

private panel tagbar;  @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main);  tagbar = (panel) findviewbyid(r.id.custview);        } 

as can tell, doesn't use constructor outlined above. how instantiate new panel, including passing right context , attributeset? seems when constructed (without int barlength argument) passed in automatically. how should tagbar instantiated pass 3 arguments?

to clarify, attrs.xml styleable attributes file used set colors of bars xml. can give me direction?

thanks!

if have panel class in xml, framework calls proper constructor you, passing context , attributes. can create new attribute in attrs.xml, , once that's done can pass bar length via xml well

<resources>     <declare-styleable name="panel">         <attr name="barlength" format="int" />     </declare-styleable> </resources> 

then in xml add barlength=n, other attribute in xml, without android: in front of it.


Comments

Popular posts from this blog

php - cannot display multiple markers in google maps v3 from traceroute result -

c# - DetailsView in ASP.Net - How to add another column on the side/add a control in each row? -

javascript - firefox memory leak -