如何获得Baseadapter位置 [英] How to get position in Baseadapter

查看:267
本文介绍了如何获得Baseadapter位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我收到来自服务器的响应,并在列表视图中显示,但如何让baseadapter位置,,我在列表项1的ImageView,我想获得用户ID为每个选择,现在我得到的everylistitem 6最后ID当我点击的ImageView

这是我的回应

  {
    搜索结果: [
        {
            USER_ID:5,        },
        {
            USER_ID:6,        }
    ]
}

我的适配器

 公共类CustomAdapterAccept延伸BaseAdapter {        私人上下文的背景下;
        私人的ArrayList<&HashMap的LT;字符串,字符串>>的ListData;
        私人AQuery aQuery;        私人字符串TAGs_NAME =user_fname;
        私人字符串TAG_FRIENDID =USER_ID;
        私人字符串TAGs_IMAGES =user_pic;
        私人字符串TAGs_CITY =user_city;
        公共CustomAdapterAccept(上下文的背景下,ArrayList的<&HashMap的LT;字符串,字符串>>的ListData){
            this.context =背景;
            this.listData =的ListData;
            aQuery =新AQuery(this.context);
        }        @覆盖
        公众诠释的getCount(){
            返回listData.size();
        }        @覆盖
        公共对象的getItem(INT位置){
            返回listData.get(位置);
        }        @覆盖
        众长getItemId(INT位置){
            返回的位置;
        }        @覆盖
        公共查看getView(最终诠释的立场,观点convertView,父母的ViewGroup){
            ViewHolder持有人;
            如果(convertView == NULL){
                持有人=新ViewHolder();
                convertView = LayoutInflater.from(上下文).inflate(R.layout.list_item_balloonationsearch,NULL);
                holder.propics =(ImageView的)convertView.findViewById(R.id.list_item_ballonationsearch_propic);
                holder.txtproname =(TextView中)convertView.findViewById(R.id.list_item_ballonationsearch_username);                holder.addfriend =(ImageView的)convertView.findViewById(R.id.addfriend_after_searchs);
                holder.city =(TextView中)convertView.findViewById(R.id.serach_city);                convertView.setTag(保持器);
            }其他{
                支架=(ViewHolder)convertView.getTag();
            }             holder.addfriend.setTag(位置);
        holder.addfriend.setOnClickListener(新View.OnClickListener(){
            @覆盖
            公共无效的onClick(查看视图){                最终诠释位置=(int)的view.getTag();
                frindsids = listData.get(位置)获得(TAG_FRIENDID);
                的System.out.println(HWIHC ID+ frindsids);
            }
        });            holder.txtproname.setText(listData.get(位置)获得(TAGs_NAME));
            holder.city.setText(listData.get(位置)获得(TAGs_CITY));
            aQuery.id(holder.propics).image(listData.get(position).get(TAGs_IMAGES),true,true,0,R.drawable.male);            //图片参数:1:内存缓存,2:文件缓存,3:目标宽度,4:备用图片
            返回convertView;
        }
        类ViewHolder {
            ImageView的propics;
            TextView的txtproname,市;
            TextView的txtproid;
            TextView的txtprofilecast;
            TextView的txtprofileage;
            TextView的txtprofileplace;
            公共ImageView的addfriend;
        }    }


解决方案

我编辑了自己的code检查,并尝试

  holder.addfriend =(ImageView的)convertView.findViewById(R.id.addfriend_after_searchs);
holder.addfriend.setTag(位置);
                holder.city =(TextView中)convertView.findViewById(R.id.serach_city);                convertView.setTag(保持器);
            }其他{
                支架=(ViewHolder)convertView.getTag();
            }             holder.addfriend.setTag(位置);
        holder.addfriend.setOnClickListener(新View.OnClickListener(){
            @覆盖
            公共无效的onClick(查看视图){
  INT POSI =(整数)view.getTag();                frindsids = listData.get(POSI)获得(TAG_FRIENDID);
                的System.out.println(HWIHC ID+ frindsids);
            }
        });            holder.txtproname.setText(listData.get(位置)获得(TAGs_NAME));
            holder.city.setText(listData.get(位置)获得(TAGs_CITY));
            aQuery.id(holder.propics).image(listData.get(position).get(TAGs_IMAGES),true,true,0,R.drawable.male);            //图片参数:1:内存缓存,2:文件缓存,3:目标宽度,4:备用图片
            返回convertView;
        }
        类ViewHolder {
            ImageView的propics;
            TextView的txtproname,市;
            TextView的txtproid;
            TextView的txtprofilecast;
            TextView的txtprofileage;
            TextView的txtprofileplace;
            公共ImageView的addfriend;
        }    }

I am getting response from server and display it in listview,but how to get position in baseadapter,,i have one imageview in listitem and i want to get userid as per selection,right now i am getting 6 last id in everylistitem when i click on imageview

this is my response

 {
    "searchresult": [
        {
            "user_id": "5",

        },
        {
            "user_id": "6",

        }
    ]
}

MY adapter

 public class CustomAdapterAccept extends BaseAdapter{

        private Context context;
        private ArrayList<HashMap<String,String>> listData;
        private AQuery aQuery;

        private  String TAGs_NAME="user_fname";
        private  String TAG_FRIENDID="user_id";
        private String TAGs_IMAGES="user_pic";
        private  String TAGs_CITY="user_city";


        public CustomAdapterAccept(Context context,ArrayList<HashMap<String,String>> listData) {
            this.context = context;
            this.listData=listData;
            aQuery = new AQuery(this.context);
        }

        @Override
        public int getCount() {
            return listData.size();
        }

        @Override
        public Object getItem(int position) {
            return listData.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView( final int position, View convertView, ViewGroup parent) {
            ViewHolder holder;
            if (convertView == null) {
                holder = new ViewHolder();
                convertView = LayoutInflater.from(context).inflate(R.layout.list_item_balloonationsearch, null);
                holder.propics = (ImageView) convertView.findViewById(R.id.list_item_ballonationsearch_propic);
                holder.txtproname = (TextView) convertView.findViewById(R.id.list_item_ballonationsearch_username);

                holder.addfriend=(ImageView) convertView.findViewById(R.id.addfriend_after_searchs);
                holder.city=(TextView) convertView.findViewById(R.id.serach_city);



                convertView.setTag(holder);
            }else{
                holder = (ViewHolder) convertView.getTag();
            }

             holder.addfriend.setTag(position);
        holder.addfriend.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                final int position = (int) view.getTag();
                frindsids=listData.get(position).get(TAG_FRIENDID);
                System.out.println("HWIHC ID"+frindsids);
            }
        });

            holder.txtproname.setText(listData.get(position).get(TAGs_NAME));
            holder.city.setText(listData.get(position).get(TAGs_CITY));
            aQuery.id(holder.propics).image(listData.get(position).get(TAGs_IMAGES),true,true,0,R.drawable.male);

            // image parameter : 1 : memory cache,2:file cache,3:target width,4:fallback image
            return convertView;
        }
        class ViewHolder{
            ImageView propics;
            TextView txtproname,city;
            TextView txtproid;
            TextView txtprofilecast;
            TextView txtprofileage;
            TextView txtprofileplace;
            public ImageView addfriend;
        }

    }

解决方案

I have edited your code check it and try

         holder.addfriend=(ImageView) convertView.findViewById(R.id.addfriend_after_searchs);
holder.addfriend.setTag(position);
                holder.city=(TextView) convertView.findViewById(R.id.serach_city);



                convertView.setTag(holder);
            }else{
                holder = (ViewHolder) convertView.getTag();
            }

             holder.addfriend.setTag(position);
        holder.addfriend.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
  int posi = (Integer) view.getTag();

                frindsids=listData.get(posi).get(TAG_FRIENDID);
                System.out.println("HWIHC ID"+frindsids);
            }
        });

            holder.txtproname.setText(listData.get(position).get(TAGs_NAME));
            holder.city.setText(listData.get(position).get(TAGs_CITY));
            aQuery.id(holder.propics).image(listData.get(position).get(TAGs_IMAGES),true,true,0,R.drawable.male);

            // image parameter : 1 : memory cache,2:file cache,3:target width,4:fallback image
            return convertView;
        }
        class ViewHolder{
            ImageView propics;
            TextView txtproname,city;
            TextView txtproid;
            TextView txtprofilecast;
            TextView txtprofileage;
            TextView txtprofileplace;
            public ImageView addfriend;
        }

    }

这篇关于如何获得Baseadapter位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆