This may be simple but i couldn't find solution for this. The problem
is setting the background color for gridview items inside the
onitemlongclicklistener method.

I have two linear layouts, one contains the textview and gridview and
another contains some buttons(I set this layout like the menubar on
top of the screen). I hide the second one from the screen using
setVisibility(View.GONE) and when ever I do itemlongclick on the
gridview item the second one will appear using
setVisibility(View.VISIBLE) at the same time I want to change the
bgcolor of the clicked/selected item.

Everything is working fine but whenever the second layout is visible
and also whenever scrolling the gridview, the clicked/selected bgcolor
is disappear.

I tried so many ways but I couldn't solve this problem. Please have
look on my coding and tell me what I 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 my baseadapter is :

 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);

        // get layout from mobile.xml
        gridView = inflater.inflate(R.layout.mobile, null);



    /*} else {
        gridView = (View) convertView;
    }*/
    // set value into textview

                TextView textView = (TextView)
gridView.findViewById(R.id.grid_item_label);
                //to set the 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 and if you want anything more please let me know...

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to