android: dynamic listview focus returning to first item every time after loosing focus from other item -
i using 2 list-view's list_a , list_b same number of list items shown in figure 1, in list_b custom array adapter each item list(string) creating button dynamically of required width.
public class larrayadapter extends arrayadapter<list<string>> { private final context context; private list<list<string>> list; public larrayadapter(context context, list<list<string>> list) { super(context, r.layout.hrowlayout, list); this.context = context; this.list = list; } @override public view getview(int position, view convertview, viewgroup parent) { layoutinflater inflater = (layoutinflater) context .getsystemservice(context.layout_inflater_service); horizontalscrollview sv = (horizontalscrollview) inflater.inflate( r.layout.hrowlayout, parent, false); linearlayout rl1 = (linearlayout) sv.findviewbyid(r.id.ll); list<string> name2 = list.get(position); final button[] b = new button[name2.size()]; float x; (int = 0; < name2.size(); i++) { b[i] = new button(rl1.getcontext()); b[i].setgravity(gravity.center); b[i].setbackgroundresource(r.drawable.bakground_list); b[i].setsingleline(true); string einfo = name2.get(i); string[] einfosplit = einfo.split("-",2); x = calwidth(integer.parseint(einfosplit[1])); linearlayout.layoutparams params2 = new linearlayout.layoutparams((int) x, 80); params2.topmargin = 15; b[i].settextsize(18); b[i].settextcolor(color.white); b[i].settext(einfosplit[0]); b[i].setlayoutparams(params2); final int z = i; b[i].setonfocuschangelistener(new view.onfocuschangelistener(){ @override public void onfocuschange(view v, boolean hasfocus){ if(hasfocus){ b[z].settextcolor(0xff7bcffc); } else b[z].settextcolor(color.white); } } ); rl1.addview(b[i],params2); } sv.scrollto(0, 0); return sv; } public int calwidth(int dur){ return (253/3)*dur; } }
problem facing: when navigated list_a list_b, want set focus of list_b same position of list_a item, using
list_b.setselection(list_a_cur);//list_a_cur gives position of list_a focused item list_b.setfocusable(true); list_b.requestfocus();
list_b item gets focus correctly shown in figure 1, item looses focus after time , returns first item every time shown in figure 2, please ...thank you,
figure 1
figure 2
Comments
Post a Comment