3

Inside getView here addprod.setOnClickListener I am making two views visible as you see 0 and minus button in the image if I initialize

final Button decprod=(Button)convertView.findViewById(R.id.decprod);
final TextView disprod=(TextView)convertView.findViewById(R.id.disprod);

like this ie both view as final then I am getting both views visible exactly where I want but if I remove the final if I press addprod button then both the view are visible some where else as you see in this image whats there in final .....i know that Anonymous inner classes may only access variables of the enclosing method that are final or we can declare it as globally but if i declare globally i can't make the right view's visible

enter image description here

 public class ItemListBaseAdapter extends BaseAdapter {


            private  ArrayList<HashMap<String, String>> itemDetailsrrayList;
             Bitmap bitmap[];
                Context context1;
                String ab;




            private LayoutInflater l_Inflater;

            public ItemListBaseAdapter(Context context, ArrayList<HashMap<String, String>> mylist)
            {

                itemDetailsrrayList = mylist;
                //l_Inflater = LayoutInflater.from(context);
                context1=context;

            }

            public int getCount() {
                return itemDetailsrrayList.size();

            }

            public Object getItem(int position) {
                return itemDetailsrrayList.get(position);
            }

            public long getItemId(int position) {

                return position;
            }




            public View getView( final int position, View convertView, ViewGroup parent)
            {
              int ruban=3;

                //final ViewHolder holder;


                if (convertView == null) {
                    l_Inflater = LayoutInflater.from(context1);

                     convertView = l_Inflater.inflate(R.layout.list1, null,true);




                }


                TextView txt_itemName = (TextView) convertView.findViewById(R.id.textView1);
                TextView txt_itemDescription = (TextView) convertView.findViewById(R.id.mrp1);
                TextView txt_itemPrice = (TextView) convertView.findViewById(R.id.ourprice1);
                TextView txt_itemSave = (TextView) convertView.findViewById(R.id.save1);
                //holder.txt_itemw = (TextView) convertView.findViewById(R.id.textView4);
                WebView itemimmm=(WebView)convertView.findViewById(R.id.imageView1);
                TextView t1 = (TextView) convertView.findViewById(R.id.t1);
                TextView t2 = (TextView) convertView.findViewById(R.id.t2);
                TextView t3 = (TextView) convertView.findViewById(R.id.t3);
                Button addprod=(Button)convertView.findViewById(R.id.addprod);
                final Button decprod=(Button)convertView.findViewById(R.id.decprod);
                final TextView disprod=(TextView)convertView.findViewById(R.id.disprod);
                decprod.setVisibility(View.GONE);
                disprod.setVisibility(View.GONE);

                txt_itemDescription.setPaintFlags(txt_itemDescription.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
                itemimmm.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);

                txt_itemName.setTypeface(AllItems.face);
                txt_itemDescription.setTypeface(AllItems.face);
                txt_itemPrice.setTypeface(AllItems.face);
                txt_itemSave.setTypeface(AllItems.face);
                //holder.txt_itemw.setTypeface(AllItems.face);
                t1.setTypeface(AllItems.rupee);
                t2.setTypeface(AllItems.rupee);
                t3.setTypeface(AllItems.rupee);
                //StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
                //StrictMode.setThreadPolicy(policy);
                txt_itemName.setText(itemDetailsrrayList.get(position).get("name"));
                txt_itemDescription.setText(itemDetailsrrayList.get(position).get("price"));
                txt_itemPrice.setText(itemDetailsrrayList.get(position).get("sp"));
                txt_itemSave.setText(itemDetailsrrayList.get(position).get("save"));
                //holder.txt_itemw.setText(itemDetailsrrayList.get(position).get("type"));
                itemimmm.loadUrl(itemDetailsrrayList.get(position).get("image"));
                if(itemDetailsrrayList.get(position).get("name").equals("Daughter")||itemDetailsrrayList.get(position).get("name").equals("Ethnic"))
                {
                Log.e("name", String.valueOf(itemDetailsrrayList.get(position).get("name")));
                //decprod.setVisibility(View.VISIBLE);
                //disprod.setVisibility(View.VISIBLE);
                }

                  // Log.e("before", "try");


            /*  try{

                        Log.e("try", String.valueOf(itemDetailsrrayList.get(position).get("image")));
                     Bitmap bitmap1 = BitmapFactory.decodeStream((InputStream) new URL(itemDetailsrrayList.get(position).get("image")).getContent());
                     itemimmm.setImageBitmap(bitmap1);
                    }catch(Exception ex){

                         ex.printStackTrace();
                         Log.e("error",String.valueOf(ex));
                     itemimmm.setImageResource(getResources().getIdentifier("ic_launcher", "drawable", getPackageName())); 

                        Log.e("catch", "catch");*/

                //prodImage.setImageResource(getResources().getIdentifier("sample", "drawable", getPackageName()));


                //itemimmm.setImageResource(getResources().getIdentifier("ic_launcher", "drawable", getPackageName())); 




                //holder.itemImage.setImageBitmap(bitmap[position]);

                /*if(){
                    disprod.setText(String.valueOf(Integer.parseInt(String.valueOf(disprod.getText()))));
                }*/


              addprod.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View arg0)
                    {


                        decprod.setVisibility(View.VISIBLE);
                        disprod.setVisibility(View.VISIBLE);





                    }
                });



                decprod.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View arg0)
                    {
                        //Log.v("item name", String.valueOf(itemDetailsrrayList.get(position).get("price")));

                    }
                });



               /* textView.setText(getelement()[position]);

                 ImageView imageView = (ImageView) convertView
                .findViewById(R.id.icon);
                 imageView.setImageBitmap(bitmap);*/




                    return convertView;




                   }




        }
Ruban
  • 1,514
  • 2
  • 14
  • 21

3 Answers3

1

I think You should try to make Your Button Actions inside Your ListActivity, not inside Your Adapter

Opiatefuchs
  • 9,800
  • 2
  • 36
  • 49
  • no we cant do because it is custom base adapter .i am inflating view from other xml to list row.getview is the right thing to go with – Ruban Dec 21 '12 at 12:40
1

if you apply gone the place allocated to the components will be removed. Try to use invisible.

kumar
  • 691
  • 1
  • 7
  • 16
1

Simple, try adding the item position into the view tag and retreiving the position later in OnClick(View v).

Animal Mother
  • 159
  • 1
  • 13
  • my question was if i declare final everything works fine(final Button decprod=(Button)convertView.findViewById(R.id.decprod); final TextView disprod=(TextView)convertView.findViewById(R.id.disprod);) .my custom base adaper is in inner class. if i remove the final and try to declare the disprod and decprod globally in parent class its not visible in exact position.so what exactly happening between inner class final or declaring globally.its working fine with final declared in inner class.but i just want to know the reason – Ruban Jul 19 '13 at 06:01