android - Trying to understand Relative Layouts -
brand new android dev, , i'm trying figure out whats broken small piece of code.
i have relative layout (which believe suits needs best). have 2 buttons on row specified in activity_main.xml file. when press 1 of buttons i'd have edittext field , button repeatedly appear on same row, below last set of items. kinda this:
button button
|__| button
my function adds edittext expect on first tap end row of 3 buttons this:
button button button
|__|
code below, missing relative layouts? accessing elements in horribly botched way even?
//get main layout defined in activity_main.xml final relativelayout rl = (relativelayout)this.findviewbyid(r.id.rootlayout); //setup rules final relativelayout.layoutparams below = new relativelayout.layoutparams(viewgroup.layoutparams.wrap_content, layoutparams.wrap_content); final relativelayout.layoutparams right = new relativelayout.layoutparams(viewgroup.layoutparams.wrap_content, layoutparams.wrap_content); newtimer.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { below.addrule(relativelayout.below,rl.getchildat(rl.getchildcount()-1).getid() ); edittext timername = new edittext(mainactivity.this); button btnaddnewtimer = new button(mainactivity.this); timername.settext("new timer"); timername.setvisibility(view.visible); timername.setlayoutparams(below); rl.addview(timername); right.addrule(relativelayout.right_of,rl.getchildat(rl.getchildcount()-1).getid()); btnaddnewtimer.settext("add"); btnaddnewtimer.setvisibility(view.visible); btnaddnewtimer.setlayoutparams(right); rl.addview(btnaddnewtimer); } });
i don't trust getchildcount()-1).getid() last added view.
also, need specify layout parameter on want new item vertically. need add rule right line top button.
i'd recommend id of added view
timername.settext("new timer"); timername.setvisibility(view.visible); timername.setlayoutparams(below); timername.setid(39);//or other unique id in range rl.addview(timername); right.addrule(relativelayout.right_of, timername.getid()); right.addrule(relativelayout.align_top,timername.getid()); btnaddnewtimer.settext("add"); btnaddnewtimer.setvisibility(view.visible); btnaddnewtimer.setlayoutparams(right);
Comments
Post a Comment