Issue in setting bgcolor for gridview items in android -


this may simple couldn't find solution this. problem setting background color gridview items inside onitemlongclicklistener method.

i have 2 linear layouts, 1 contains textview , gridview , contains buttons(i set layout menubar on top of screen). hide second 1 screen using setvisibility(view.gone) , when ever itemlongclick on gridview item second 1 appear using setvisibility(view.visible) @ same time want change bgcolor of clicked/selected item.

everything working fine whenever second layout visible , whenever scrolling gridview, clicked/selected bgcolor disappear.

i tried many ways couldn't solve problem. please have on coding , tell me did wrong.

gv.setonitemlongclicklistener(new onitemlongclicklistener() {           public boolean onitemlongclick(adapterview<?> parent, view strings,                           int position, long id) {               final option o = dir.get(position);              //gv.performitemclick(gv, position,gv.getitemidatposition(position));                /* if(pos!=-1)                {               gv.getchildat(pos).setbackgroundcolor(0xffffffff);                }*/               strings.setselected(true);              // textview tx=(textview)strings.findviewbyid(r.id.grid_item_label);             //  tx.findviewbyid(id).setbackgroundcolor(0xff0000ff);              /*if(!o.getdata().equalsignorecase("o")){                    //gv.getchildat(position).setselected(true);                      fill(new file(new file(o.getpath()).getparent()),position);            }*/              /*try              {                  gv.getselectedview().setbackgroundcolor(0xffcccccc);              }              catch(exception e){                 toast.maketext(fffsdactivity.this, "ok\n"+e,toast.length_short).show();               }*/               /*for(int i=0;i<nofifo;i++)                {                  try{                  if(gv.getchildat(i).isselected())                  {                        gv.getchildat(i).setbackgroundcolor(0xffbbbbbb);                          // toast.maketext(fffsdactivity.this, "yes ok\n"+i,toast.length_short).show();                   }                  else{                            gv.getchildat(i).setbackgroundcolor(0xffffffff);                           //toast.maketext(fffsdactivity.this, "no ok\n"+i,toast.length_short).show();                   }                  }                  catch(exception e)                  {                 toast.maketext(fffsdactivity.this, "i wanna e :"+e+"\n"+i,toast.length_short).show();                   }                 try{                  gv.getchildat(i).setselected(false);                    //toast.maketext(fffsdactivity.this, "gv ok\n"+i,toast.length_short).show();                  }catch(exception e){                       toast.maketext(fffsdactivity.this, "i  wanna setselected e :"+e+"\n"+i,toast.length_short).show();                  }                }*/                // toast.maketext(fffsdactivity.this, "i wanna c :"+gv.getchildat(position).isselected(),toast.length_long).show();              //gv.getselectedview().setbackgroundcolor(0xffcccccc);                       pos=position;             if(o.getdata().equalsignorecase("parent directory"))             {                 fill(new file(o.getpath()),-1);             }              else if(o.getdata().equalsignorecase("folder"))             {                  llfftools.setvisibility(view.visible);                  translateanimation slide = new translateanimation(0, 0,-llfftools.getheight(),0 );                     slide.setduration(100);                     slide.setfillafter(true);                    llfftools.startanimation(slide);                  //fill(new file(new file(o.getpath()).getparent()));                  onfolderclick(o);                  //gv.getchildat(position).setbackgroundcolor(0xffaaaaaa);               } 

and baseadapter :

    public class imageadapter extends baseadapter { private context context; private final list<option> mobilevalues;    public imageadapter(context context,list<option> fofivalues) {     this.context = context;     this.mobilevalues = fofivalues; }  public view getview(int position, view convertview, viewgroup parent) {      layoutinflater inflater = (layoutinflater) context         .getsystemservice(context.layout_inflater_service);      view gridview;     //if (convertview == null) {          gridview = new view(context);          // layout mobile.xml         gridview = inflater.inflate(r.layout.mobile, null);        /*} else {         gridview = (view) convertview;     }*/     // set value textview                  textview textview = (textview) gridview.findviewbyid(r.id.grid_item_label);                 //to set max no.of chararcters in textview                 string iname=(mobilevalues.get(position).getname().length()>10)?mobilevalues.get(position).getname().substring(0, 9)+"..":mobilevalues.get(position).getname();                 if(mobilevalues.get(position).getposition()==position&&mobilevalues.get(position).getposition()!=-1)                    {                     textview.settext(iname);                     textview.settextcolor(0xff0000ff);                    }                 else{                 textview.settext(iname);                 }                  // set image based on selected text                 final imageview imageview = (imageview) gridview.findviewbyid(r.id.grid_item_image);                 /*gridview.setonlongclicklistener(new onlongclicklistener() {                      public boolean onlongclick(view v) {                         gridview.setbackgroundcolor(0xffaaaaaa);                         // todo auto-generated method stub                         return false;                     }                 });*/                 string mobile = mobilevalues.get(position).getdata();                 if(mobile=="o")                 {                  //do nothing                     imageview.setimageresource(r.drawable.white);                 }                  else if(mobile=="parent directory")                 {                     imageview.setimageresource(r.drawable.parent);                 }                 else if (mobile=="folder")                  {                     imageview.setimageresource(r.drawable.folderg);                 }                 else{                     imageview.setimageresource(r.drawable.picicon);                 }        return gridview; }  public int getcount() {     return mobilevalues.size(); }  public object getitem(int position) {     return null; }  public long getitemid(int position) {     return 0; }      } 

thanks in advance , if want more please let me know...

in xml set android:background attribute xml this:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/home_btn_sessions_pressed"     android:state_focused="true"     android:state_pressed="true" /> <item android:drawable="@drawable/home_btn_sessions_pressed"     android:state_focused="false"     android:state_pressed="true" /> <item android:drawable="@drawable/home_btn_sessions_selected" android:state_focused="true" /> <item android:drawable="@drawable/home_btn_sessions_default"     android:state_focused="false"     android:state_pressed="false" /> </selector> 

don't need write java code here.


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -