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,

enter image description here figure 1

enter image description here figure 2


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -